我需要安排一个每24小时运行一次的任务,从远程服务器获取一些小数据。由于我需要支持sdk 15+(JobScheduler仅支持21+),因此GcmNetworkManager似乎是一个完美的选择。
我通过扩展Application的onCreate方法实现这一点。我使用特定标签创建一个PeriodicTask,并调用.setUpdateCurrent(false)(因此第一个任务会被安排,随后的任务应该被忽略,因为它们不应更新现有任务)。
在文档中,我读到:
我通过扩展Application的onCreate方法实现这一点。我使用特定标签创建一个PeriodicTask,并调用.setUpdateCurrent(false)(因此第一个任务会被安排,随后的任务应该被忽略,因为它们不应更新现有任务)。
在文档中,我读到:
在我的情况下,由于我总是在Application的onCreate方法中创建更新任务,这并不重要。有没有比我正在做的更好的方法?(另外,我希望有一种方法可以检查是否存在具有给定标签的待处理周期性任务)。重要提示:当Google Play服务或客户端应用程序更新时,所有已安排的任务都将被删除。GcmNetworkManager会调用客户端应用程序的onInitializeTasks()函数。重写此函数以重新安排必要的任务。