你好,我在stackoverflow上没有找到关于Android中GCMNetworkManager和JobScheduler之间差异的帖子。
有人能帮我解答一下吗?
你好,我在stackoverflow上没有找到关于Android中GCMNetworkManager和JobScheduler之间差异的帖子。
有人能帮我解答一下吗?
这两个功能相同,不同之处在于使用的时间。
JobScheduler
是Android框架的一部分,从API 21版本开始引入。如果你的应用最低API级别为21,应该使用这个。
GCMNetworkManager
是它的"兼容"版本,通过Google Play服务进行处理/执行(所以它可以在设备上运行)。如果你的应用最低API级别小于21,应该使用这个。
还值得注意的是,GCMNetworkManager已经被FireBase JobDispatcher (https://github.com/firebase/firebase-jobdispatcher-android) 替代,所以不应再使用GCMNetworkManager,而应改用这个。
现在调度后台任务的单一解决方案是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实现。