广播意图的顺序是否得到保证?也就是说,如果我这样做,
sendBroadcast(intent1);
sendBroadcast(intent2);
接收者是否保证在意图 2 之前获得意图 1?我怀疑答案是否定的,但在这种情况下,我不太确定如何解决我的问题。
我正在尝试为我的应用程序创建一个“忙碌”指示器,当设备在网络上通话时显示忙碌,然后在网络通信完成时消失。所有网络通信都发生在意图服务中。
我的尝试是在服务中开始网络通信时发送 BUSY_START 意图,并在网络通信结束时发送 BUSY_STOP。这似乎主要工作,但我偶尔会发现我的停止和启动消息无序。
有没有更好的方法来解决这个问题?
我正在考虑为每个忙碌的意图添加一个 ID,以便它们可以配对。这样,如果我收到一个我已经收到停止的开始,我可以忽略它。或者,也许更简单,在每个广播中添加一个整数序列号。如果我收到一个广播,其当前意图的序列小于上次接收到的意图的序列,请忽略它。