Android中的GCMNetworkManager和JobScheduler有什么区别

时间:2016-09-24 08:33:24

标签: android

嗨我在stackoverflow上找不到关于Android中GCMNetworkManager和JobScheduler之间差异的任何线程。

任何人都可以帮助我。

2 个答案:

答案 0 :(得分:14)

两者都做同样的事情,区别在于你何时可以使用或其他。

  • JobScheduler是作为Android框架的一部分在API 21上引入的。如果您的应用最低API级别为21,则应使用此级别。

  • GCMNetworkManager是" compat"通过Google Play服务进行处理/执行的版本(因此它适用于设备)。如果您的应用最低API级别低于21,则应使用此级别。

另外需要注意的是,GCMNetworkManager已被FireBase JobDispatcher(https://github.com/firebase/firebase-jobdispatcher-android)取代,因此您不应再使用GCMNetworkManager而是使用它。

答案 1 :(得分:0)

现在,安排后台工作的唯一解决方案是WorkManager:https://developer.android.com/topic/libraries/architecture/workmanager

在后台,WorkManager会检测您的应用程序在哪个API级别上运行,并使用JobScheduler(对于API 23+)或AlarmManager + BroadcastReceiver(对于API 14-22)。

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