动态注册Broadcasts可能被延迟送达
当应用程序进入到缓存进程中时,这些应用程序对应的动态注册广播会被缓存到系统的一个动态注册广播队列中,等待应用程序从缓存状态唤醒时,其对应的多个广播可以一次性送到。
目前手机运行内存很高,很多应用可以一直在后台处于缓存状态,这就造成了电量,性能的消耗,Android 14 目前只针对缓存进程做了限制,也是出于省电优化的思考点。
- 为了确定在内存不足时应该终止哪些进程,Android 会根据每个进程中运行的组件以及这些组件的状态,将它们放入“重要性层次结构”。进程类型(按重要性排序) :
-
前台进程 可见进程 服务进程 缓存进程 状态 正在与用户交互 正在运行 后台运行 存活不一定工作 被回收顺序 低 较低 较高 高 举例 游戏,视频 透明弹窗后的可见应用 后台音乐,下载 不再使用且退回到后台
业务注意点:
- 广播实时性可能会收到影响
- 多个广播一起到达处理
谷歌对于广播的收紧策略
graph TD
Start --> Android7 --> Android8 --> Android9 --> Android14 --> Stop
Android7 --> 隐式广播做限制
Android8 --> 隐式广播被全面限制
Android9 --> 用户信息在广播中被限制
Android14 --> 应用进入缓存时广播被延迟送到