无法使工作在重新启动后持续存在吗?

时间:2019-05-30 06:01:22

标签: android android-workmanager

所以我知道WorkManager在受支持的API上使用了JobScheduler,但是似乎没有任何方法可以使WorkManager在重新启动后可以持久地工作吗?是请求BOOT_COMPLETED权限和重新计划作业的唯一选择吗?

2 个答案:

答案 0 :(得分:1)

要回答您的问题:重新启动设备后,您无需执行任何操作。 WorkManager会不断安排您的工作,而无需您的任何其他要求。

WorkManager将“工作”请求保留在其内部“房间”数据库中。这样可以保证在重新启动设备后执行工作。

documentation是团队去年在博客"Introducing WorkManager"上撰写的内容。

答案 1 :(得分:0)

WorkManager实际上用于持久保留可延期的任务,即使您的应用程序退出并且设备重启please refer to the docs也是如此。它对api 23及更高版本使用JobScheduler,在api 14至22上使用broadcastReceiver和AlarmManger。您可以使用约束来检查电池状态,网络覆盖范围等,具体取决于您的用例。您只需注意不要在将现有类添加到队列中后删除或重命名它们,因为WorkManager使用其内部数据库来存储这些类,如果您删除或重命名它们,应用程序将崩溃。