安卓
有三类工作和三种进程
动作
- RemoteView 纯静态 UI渲染
- 读取本地静态数据、一些同步的计算逻辑、views.setTextViewText()等普通 Kotlin/Java 代码
- 接口请求、图片下载 等 耗时操作(网络 / 数据库)
进程:
- Launcher桌面进程 只负责 渲染UI
- app已启动 app 进程
- app未启动临时 broadcast receiver 进程
关系
动作1 是在 进程1 中运行。
动作2 和 动作3 是在进程 2或者进程3中运行,取决于app当前状态。
但是动作3 比较特殊,需要 额外的 CoroutineScope、IO线程 等来处理。如果运行在临时进程,耗时操作会被杀掉。因为临时线程不保证这些耗时操作可被执行。