使用 BroadcastReceiver 传递 Intent.EXTRAS
Using BroadcastReceiver to pass Intent.EXTRAS
主要问题:我可以使用 BroadcastReceiver 将带有附加功能的意图传递给 Activity 吗?
设置:我有一个来自 DatePicker 片段的记录日期,我想确保将 Millis 时间传递给另一个 activity,但是 activity 不会立即从那个 Activity 包含该片段
我尝试在 activity 中将以下代码与 datePicker 片段一起使用:
Intent intent = new Intent().putExtra(EVENT_MILLIS, eventDateMillis);
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
在 "receiving" activity:
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstatnceState);
setContentView...
LocalBroadcastManager.getInstance(this).registerReceiver(mReceiver, new IntentFilter(EVENT_MILLIS));
我发起接收器的调用:
private BroadcastReceiver mReceiver = new BroadcastReceiver () {
@Override
public void onReceive(Content content, Intent intent) {
setReceivedDate(intent.getLongExtra(EVENT_MILLIS,0));
}
}
使用 Broadcast
不是一个好的模式,它会降低应用程序的效率。尝试改用 EventBus。它易于使用,问题较少。
主要问题:我可以使用 BroadcastReceiver 将带有附加功能的意图传递给 Activity 吗?
设置:我有一个来自 DatePicker 片段的记录日期,我想确保将 Millis 时间传递给另一个 activity,但是 activity 不会立即从那个 Activity 包含该片段
我尝试在 activity 中将以下代码与 datePicker 片段一起使用:
Intent intent = new Intent().putExtra(EVENT_MILLIS, eventDateMillis);
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
在 "receiving" activity:
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstatnceState);
setContentView...
LocalBroadcastManager.getInstance(this).registerReceiver(mReceiver, new IntentFilter(EVENT_MILLIS));
我发起接收器的调用:
private BroadcastReceiver mReceiver = new BroadcastReceiver () {
@Override
public void onReceive(Content content, Intent intent) {
setReceivedDate(intent.getLongExtra(EVENT_MILLIS,0));
}
}
使用 Broadcast
不是一个好的模式,它会降低应用程序的效率。尝试改用 EventBus。它易于使用,问题较少。