我可能提到过很多用于作业调度的API:


AlarmManager
JobScheduler
JobSchedulerCompat
GCMNetworkManager


我想做的是,一个用户与一个广告系列一起设置一个日期,将其保存在Firebase中,当该日期到来时,创建的对象将被删除。我已经看到与Parse类似的东西,但是您可能知道,它正在关闭,并且无论如何我都将数据存储在Firebase中。

但是,AlarmManager肯定不会在云中执行任务(该服务不在设备上运行,而是在云中运行。)

JobScheduler对于预棒棒糖不可用。

不建议使用JobSchedulerCompat“无法保证这不会导致设备爆炸或耗尽电池”,而且我认为它也不会在云中运行。

而且我不确定GCMNetworkManager。它在云中运行还是在设备上运行?艰难的例子:如果使用我的应用程序的每个用户都关闭了设备,任务是否仍将完成?



长话短说:GCMNetworkManager是否在云中运行?如果没有,我有什么选择?



编辑:@qbix的答案给了我一个提示,但我仍然无法从该链接中了解任何内容。如果有人回答我的问题并举了一个例子,他将获得赏金。这包括@qbix。

最佳答案

不,GCMNetworkManager不能在云中运行。它与您列出的其他调度程序一样在设备上运行。

如果我正确理解您的要求,则应该查看Firebase Server SDK。您将创建一个具有有限权限的服务器任务,以访问数据库的相应部分。它将定期为所有用户执行所需的数据库维护。

09-13 12:00