android - android有序广播是原子的吗?如果不是,如何为此类广播实现原子性?
问题描述
假设有 4 个BroadcastReceivers
,并且有一个应用程序发送 Ordered Broadcast
给所有这些。所有四个广播接收器都处于各自独立的进程中。如果中间出现问题(例如,中间方法之一失败onReceive
)如何确保有序android广播的原子性?
它取决于用例还是可以采用通用机制?
更新
在有序广播的情况下究竟Atomicity
意味着什么,我只能猜测。例如,如果在接收者中执行一系列事务,是否可以在两者之间发生任何故障时恢复所有事务?在这种情况下谈论是否有意义Atomicity
?
解决方案
Android 将有序广播一个接一个地依次发送给每个BroadcastReceiver
。如果发生故障,Android 将通过将有序广播发送到下一个来继续BroadcastReceiver
。
Android 处理从系统进程发送有序广播,因此即使其中一个接收进程崩溃,Android 仍然可以继续将广播传递给下一个BroadcastReceiver
。
这是否回答你的问题?我和@CommonsWare 一起讨论这个问题,因为我不知道你在这种情况下所说的“原子性”是什么意思。
推荐阅读
- sql - 如何转义结尾带有引号的字符串
- python-2.7 - 如何在 Python 中使用 boto3 模块检查 Redshift 的集群状态?
- express - 如何格式化来自 NextJS/Express 的 JSON 响应
- download - 从目录列表禁用的服务器自动下载文件的问题
- functional-programming - 如何在 SML 中打印 if 语句
- c# - 在 CardView 顶部画线
- excel - Excel VBA 无法使用“=(”填充单元格
- rdma - 如何让服务器通过 RDMA 写入客户端设备的内存区域
- python - Selenium 中的 Webscraping 循环第一行和分页问题
- php - Laravel 泊坞窗图像“无法打开输入文件:/var/www/html/artisan”