前言
一般情况下,我们大部分的操作都是在app打开的时候进行的,但是在某些情况下,即使app关闭了,我们也可能需要执行必要的动作,或者会采取一个动作,而不是让用户等待加载,我们可以在后台执行此操作并通知用户结果。针对这些日常工作中经常出现但是又非常棘手的情况,学会使用workManager将会大家轻松解决这些问题。
WorkManager 是一个 API,可供大家轻松调度那些即使在退出应用或重启设备后仍应运行的可靠异步任务。WorkManager API 是一个适合用来替换所有先前的 Android 后台调度 API(包括 FirebaseJobDispatcher、GcmNetworkManager 和 JobScheduler等)的组件,本人也建议您这样做。WorkManager 在其现代、一致的 API 中整合了其前身的功能,该 API 支持 14及以上,在开发时考虑到了对电池续航等影响。
何时使用 WorkManager
WorkManager 处理需要在满足各种约束时运行的后台工作,而不管应用程序进程是否处于活动状态。后台工作可以在应用程序在后台、应用程序在前台或应用程序在前台启动但转到后台时启动。无论应用程序在做什么,后台工作都应该继续执行,或者如果 Android 终止其进程则重新启动。
关于 WorkManager 的一个常见混淆是它用于需要在“后台”线程中运行但不需要在进程死亡后继续存在的任务。不是这种情况。对于此用例,还有其他解决方案,例如 Kotlin 的协程、线程池或 RxJava 等库。