Android - 跟进GcmTaskService和GcmNetworkManager - 强制停止后的调度任务

时间:2015-11-13 19:33:35

标签: android google-play-services job-scheduling android-jobscheduler

首先,我知道所有的问题和答案 in this stackoverflow questionin the official documentationin this github sample project

不幸的是,从我的测试中我无法验证整个"任务在强制停止后继续运行"在我提供的链接中注明了观察。也许这已经修复了?

无论如何,我想要完成的是仅在用户在强制停止后第一次打开应用程序之后重新安排我的任务。

让我们说我的任务应该每月运行一次。我想要做的只是在应用程序第一次启动时安排它(通过Once库https://github.com/jonfinerty/Once)。此任务将运行正常,直到用户强制停止应用程序。在那一点上,我显然不关心任务没有运行,因为用户强制停止它,但我确实希望在用户再次打开应用程序后重新安排该作业。

似乎代码中没有明显的地方可以做到这一点。例如,如果我在应用程序类中执行此操作,任务将被重新安排,但每次应用程序启动时也会重新安排,这不是我想要的。例如,如果我在应用程序启动时每月安排一次任务,那么此任务将实际上永远不会运行,因为它将在未来一个月(一次又一次)安排每天(当用户打开应用程序时)。

有关我如何执行此操作的任何想法?这应该是一种非常常见的情况,除非有我缺少的东西。

干杯

1 个答案:

答案 0 :(得分:2)

我没有深入阅读,但也许你可以做得更复杂一点。

也许您只需保存上次任务运行/完成和/或强制停止到共享首选项的时间和日期。在应用程序启动时,您可以从共享首选项中读取此信息并计算是否需要重新安排它。

希望这有点帮助