嗨我在stackoverflow上找不到关于Android中GCMNetworkManager和JobScheduler之间差异的任何线程。
任何人都可以帮助我。
答案 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实现