哪个是在启动时重新安排作业的更好方法?

时间:2018-05-10 07:32:01

标签: android android-jobscheduler bootcompleted

可以在android作业调度程序中以两种方式重新安排作业。

  1. 使用.setPersisted(true)
  2. 通过BOOT_COMPLETED广播接收器再次安排。
  3. 对于定期工作,哪一种更好的方法呢?

1 个答案:

答案 0 :(得分:1)

我不会说有更好的方法。这取决于您的应用中作业的用例。两者都需要RECEIVE_BOOT_COMPLETED使用权限。

如果用户可以打开/关闭周期性任务(作业),或者有一个约束等待数据的作业,并且它应该在重新启动后持续存在,那么使用setPersisted(true)功能可能是有意义的。这样您就不必担心做任何事情,并且在启动时作业将自动从磁盘加载。根据我的理解,这项工作也应安排在重新启动之前停止的地方,以便更统一地安排工作。

否则,如果您不希望在收到BOOT_COMPLETED意图之前安排此作业(可能有很多原因),那么在收到此意图后可能是安排作业的正确位置。您还可能希望不仅在接收BOOT_COMPLETED意图时重新安排,而且还要重新安排其他意图,例如MY_PACKAGED_REPLACED。可以接收所有这些意图,并在同一个BroadcastReceiver中安排作业。

最有可能采用其他方式的其他原因。