Android 当/如果从多个应用程序调用onReceive override时会发生什么情况?

Android 当/如果从多个应用程序调用onReceive override时会发生什么情况?,android,sms,broadcastreceiver,Android,Sms,Broadcastreceiver,例如,在这里的一些示例中,一部手机运行2个或更多应用程序,调用onReceive()。 android是否有某种任务顺序,可以按顺序运行所有千次@覆盖?可能是的,那么应用程序重要性的顺序是什么 附件1和附件2: 附录1: 附录2: 您可以使用BroadcastReceivers的属性定义意图的处理顺序。当一个意图可以由多个接收者处理时,Android会生成一个有序列表(基于每个接收者的优先级)并按顺序传递意图 因此,在您的情况下,当您注册接收器时(通过registerReceiver(Broad

例如,在这里的一些示例中,一部手机运行2个或更多应用程序,调用
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
  }
};