使用BroadcastReciever传递Intent.EXTRAS

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用BroadcastReciever传递Intent.EXTRAS相关的知识,希望对你有一定的参考价值。

主要问题:我可以使用BroadcastReciever将附加内容的意图传递给活动吗?

设置:我有一个DatePicker片段的记录日期,我想确保将Millis时间传递给另一个活动,但是不会立即从包含该片段的Activity调用该活动

我尝试使用datePicker片段在活动中使用以下代码:

Intent intent = new Intent().putExtra(EVENT_MILLIS, eventDateMillis); 
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);

在“接收”活动中:

@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstatnceState);
setContentView...
LocalBroadcastManager.getInstance(this).registerReceiver(mReceiver, new IntentFilter(EVENT_MILLIS));

我打电话给接收者:

private BroadcastReciever mReceiver = new BroadcastReciever () {
@Override
public void onReceive(Content content, Intent intent) {
   setRecievedDate(intent.getLongExtra(EVENT_MILLIS,0));
}
}
答案

使用Broadcast不是一个好的模式,它会降低你的应用程序的效率。尝试使用EventBus代替。它很容易使用较低的问题。

以上是关于使用BroadcastReciever传递Intent.EXTRAS的主要内容,如果未能解决你的问题,请参考以下文章

重复报警BroadcastReciever Intent字符串附加功能没有得到更新

从 stackview 小部件传递可序列化对象会产生空指针异常

数组作为参数传递的时候,被调用的函数内无法计算出数组的大小

在 Pending Intents Android 中传递值

POJ3660-Permutations-传递闭包FLOYD

MQL4编程—值传递和引用传递