广播接收器如何在活动中工作?

时间:2017-03-31 15:46:45

标签: android android-broadcastreceiver activity-stack

我有多个活动,假设A,B,C,D都注册到同一个BroadCastReceiver。在发送广播消息的同时,活动将接收广播意图。它是按照A,B,C,D还是随机的顺序排列。

请告诉我,给我一些建议。

3 个答案:

答案 0 :(得分:1)

您无法控制,因为系统会将这些操作分派给已注册的广播侦听器。您无法保证订购广播听众会被解雇。

除非是订购广播。来自docs

  

sendOrderedBroadcast(Intent,String)方法一次向一个接收器发送广播。当每个接收器依次执行时,它可以将结果传播到下一个接收器,或者它可以完全中止广播,以便它不会被传递给其他接收器。运行的订单接收器可以使用匹配的intent-filter的 android:priority 属性进行控制;具有相同优先级的接收器将以任意顺序运行。

答案 1 :(得分:1)

有可能订购广播。这取决于你是否是一个广播。如果您正在广播使用sendOrderedBroadcast(Intent, String)并优先接收您的接收器。如果其他人是广播公司,你必须知道他是否正在发送订单。如果他不这样做,你就没有机会,否则你就可以为接收者提供帮助。

答案 2 :(得分:1)

在android中有三种方式发送Broadcast。即1. sendBroadcast 2. sendOrderedBroadcast和3. sendStickyBroadcast。在这里,您正在谈论sendBroadcast,因此它将简单地将广播发送到已注册的广播接收器,无论广播的注册顺序如何。