GCMNetworkManager和JobScheduler在Android中有什么区别?

8

你好,我在stackoverflow上没有找到关于Android中GCMNetworkManager和JobScheduler之间差异的帖子。

有人能帮我解答一下吗?

2个回答

19

这两个功能相同,不同之处在于使用的时间。

  • JobScheduler是Android框架的一部分,从API 21版本开始引入。如果你的应用最低API级别为21,应该使用这个。

  • GCMNetworkManager是它的"兼容"版本,通过Google Play服务进行处理/执行(所以它可以在设备上运行)。如果你的应用最低API级别小于21,应该使用这个。

还值得注意的是,GCMNetworkManager已经被FireBase JobDispatcher (https://github.com/firebase/firebase-jobdispatcher-android) 替代,所以不应再使用GCMNetworkManager,而应改用这个。


非常感谢您提供的清晰易懂的答案。我必须说,Google开发者文档中的服务选项繁多,却没有任何使用理由或版本比较,让人感到困惑!!!D: - varun

3

现在调度后台任务的单一解决方案是WorkManager:https://developer.android.com/topic/libraries/architecture/workmanager

底层,WorkManager检测您的应用程序运行的API级别,并使用JobScheduler(适用于API 23+)或AlarmManager + BroadcastReceiver(适用于API 14-22)。

对于API 23+,使用JobScheduler;对于API 14-22,使用自定义的AlarmManager + BroadcastReceiver实现。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接