使用 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。它易于使用,问题较少。