首先,我知道所有的问题和答案in this stackoverflow question,in the official documentation和in this github sample project
不幸的是,从我的测试中,我无法验证我提供的链接中记录的整个“任务在强制停止后继续运行”的观察结果。也许这个问题现在已经解决了?
无论如何,我试图完成的是只有在用户在强制停止后第一次打开他们的应用程序后才重新安排我的任务。
假设我有一个应该每月运行一次的任务。我想做的是只在应用程序第一次启动时调度它一次(通过once库https://github.com/jonfinerty/Once)。此任务将正常运行,直到用户强制停止应用程序。在这一点上,我显然不关心任务没有运行,因为用户已经强制停止了它,但我确实希望在用户再次打开应用程序时立即重新调度该作业。
似乎在代码中没有明显的位置可以做到这一点。例如,如果我在应用程序类中这样做,任务将被重新调度,但它也将在应用程序每次启动时被重新调度,这不是我想要的。例如,如果我在应用程序启动时每月安排一次任务,那么这个任务实际上永远不会运行,因为它将在一个月后的一个月内一次又一次地安排(当用户打开应用程序时)。
有什么想法可以让我这样做吗?这应该是一个非常常见的场景,除非我遗漏了什么。
干杯
发布于 2015-11-14 04:55:46
我读得不够深入,但也许你可以做得更简单一点。
也许您只是将上次任务运行/完成和/或强制停止的时间和日期保存到共享首选项。在App start上,你可以从共享首选项中读取它,并计算是否需要重新安排它。
希望这能帮上点忙
https://stackoverflow.com/questions/33700480
复制相似问题