外观
异步任务该用哪种方式?
标准回答
短期进程内工作用受控线程池或协程;需要跨进程退出仍被调度的可延迟工作常用 WorkManager;符合规则的持续用户可感知工作才考虑前台服务。
关键机制
- 页面关联任务要跟随页面或 ViewModel 的有效期取消;仅创建 Thread 不会提高进程存活保证。
- WorkManager 支持约束、重试与持久化调度,但不保证精确时间启动;强制停止和权限等也会影响执行。
- 前台服务需要满足启动时机、服务类型、通知与权限要求;具体行为查对应版本规则。
通俗例子
加载当前列表用页面任务;稍后同步非紧急日志可用 WorkManager;用户正在使用的导航定位按产品需要使用合规前台服务。
易混淆点
不要把前台服务当作无限保活方案,也不要用 WorkManager 承担毫秒级的即时交互。
参考资料
内容来源
- Android 技术札记 · 原条目
work