首页 > 解决方案 > android有序广播是原子的吗?如果不是,如何为此类广播实现原子性?

问题描述

假设有 4 个BroadcastReceivers,并且有一个应用程序发送 Ordered Broadcast给所有这些。所有四个广播接收器都处于各自独立的进程中。如果中间出现问题(例如,中间方法之一失败onReceive)如何确保有序android广播的原子性?

它取决于用例还是可以采用通用机制?

更新

在有序广播的情况下究竟Atomicity意味着什么,我只能猜测。例如,如果在接收者中执行一系列事务,是否可以在两者之间发生任何故障时恢复所有事务?在这种情况下谈论是否有意义Atomicity

标签: androidandroid-broadcastandroid-broadcastreceiver

解决方案


Android 将有序广播一个接一个地依次发送给每个BroadcastReceiver。如果发生故障,Android 将通过将有序广播发送到下一个来继续BroadcastReceiver

Android 处理从系统进程发送有序广播,因此即使其中一个接收进程崩溃,Android 仍然可以继续将广播传递给下一个BroadcastReceiver

这是否回答你的问题?我和@CommonsWare 一起讨论这个问题,因为我不知道你在这种情况下所说的“原子性”是什么意思。


推荐阅读