Android 当/如果从多个应用程序调用onReceive override时会发生什么情况?
例如,在这里的一些示例中,一部手机运行2个或更多应用程序,调用Android 当/如果从多个应用程序调用onReceive override时会发生什么情况?,android,sms,broadcastreceiver,Android,Sms,Broadcastreceiver,例如,在这里的一些示例中,一部手机运行2个或更多应用程序,调用onReceive()。 android是否有某种任务顺序,可以按顺序运行所有千次@覆盖?可能是的,那么应用程序重要性的顺序是什么 附件1和附件2: 附录1: 附录2: 您可以使用BroadcastReceivers的属性定义意图的处理顺序。当一个意图可以由多个接收者处理时,Android会生成一个有序列表(基于每个接收者的优先级)并按顺序传递意图 因此,在您的情况下,当您注册接收器时(通过registerReceiver(Broad
onReceive()
。
android是否有某种任务顺序,可以按顺序运行所有千次@覆盖?可能是的,那么应用程序重要性的顺序是什么
附件1和附件2:
附录1:
附录2:
您可以使用
BroadcastReceivers
的属性定义意图的处理顺序。当一个意图可以由多个接收者处理时,Android会生成一个有序列表(基于每个接收者的优先级)并按顺序传递意图
因此,在您的情况下,当您注册接收器时(通过registerReceiver(BroadcastReceiver,IntentFilter filter)
,您所要做的就是分配更高的优先级(通过调用setPriority(int priority)
)发送到App1中的意向过滤器,而不是发送到App2中的过滤器,以确保App1在App2之前收到意向
还有一个古老的例子告诉你如何有效地实现这个机制。哈哈,对于编辑Cœur来说,令人惊讶的是,以前没有人看到拼写错误,我得到了一个解决方案:-)
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String message = intent.getStringExtra("message");
Log.d("receiver", "Got message: " + message);
}
};
private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String message = intent.getStringExtra("message");
deleteMessageFromInbox(message); // or just something that can conflict other Instance
}
};