我的意图是使广播接收器在接收呼叫时执行操作。比自动呼叫接收SO具有更高的优先级吗?
我尝试分配优先级2147483647
,我认为这是最好的,但是仍然让我在接收方结束之前尝试呼叫。
<!-- Receiver de llamadas -->
<receiver android:name=".PhoneCall">
<intent-filter android:priority="2147483647">
<action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>
</receiver>
最佳答案
此链接回答我:
http://developer.android.com/reference/android/content/BroadcastReceiver.html
可以接收两种主要的广播:
普通广播(通过Context.sendBroadcast发送)是完全异步的。广播的所有接收器都在未定义的状态下运行
经常在同一时间订购。这是更有效的方法,但这意味着
接收者无法使用结果或中止此处包含的API。
有序广播(通过Context.sendOrderedBroadcast发送)一次传送到一个接收器。随着每个接收器执行
反过来,它可以将结果传播到下一个接收器,也可以
完全中止广播,以免将其传递给其他人
接收者。接收方的运行顺序可以通过
匹配的intent-filter的android:priority属性;接收者
具有相同优先级的对象将以任意顺序运行。
像PHONE_STATE这样的广播是“正常广播”。据我了解,无法确定广播的优先级。有人想到吗?