早期版本的Android 5.0 JobScheduler API?

fer*_*ral 35 android android-5.0-lollipop

我正在构建一个Android应用程序,该应用程序利用清单广播接收器来了解设备何时插入.我认为Android 5.0 JobScheduler API是一种更好的方法,但我有一个问题:是否可能在早期版本的Android上使用此API或类似的API?如果不可能,最好的选择是什么(而不是清单广播接收器)?

vRa*_*lev 23

另一种选择是这个库:https://github.com/evernote/android-job

它使用了JobScheduler,GcmNetworkManager如果可能的话.否则就会落后于AlarmManager.它还可以AlarmManager正确处理不同的API级别.这篇博文给你一个概述.

(PS:我是在Evernote上为这个图书馆工作的主要开发人员.这对我们的项目非常有用,这也是我想在这里分享它的原因)


小智 19

引入了Firebase JobDispatcher.

这将取代旧的GCM网络管理器库.


Tob*_*run 18

更新:

引入WorkManager以替换下面的内容.

更新:

引入Firebase JobDispatcher以替换下面的内容.


更新:

在Play Services 7.5 中引入了GCM网络管理器.

这是JobSchedulers API的最后端口的最接近的近似值.


Github上的Evant用户正在创建JobScheduler APICompat版本.

在发布时,它不是生产准备,但值得一提


Com*_*are 9

我认为Android 5.0 JobScheduler API是一种更好的方法

那么,这取决于"这个"是什么.只要知道什么时候插入设备是没有意义的,除非你要对这些信息做些什么,而我们不知道你的想法.

请记住,JobScheduler插入设备时并不一定能让您控制.而是使用该事实以及您JobInfo和其他环境因素来确定何时给予控制权.

是否可以在早期版本的Android上使用此API或类似API?

目前没有JobSchedulerAndroid SDK提供的后端口.虽然有人可能会在某个时候编写一个反向端口,但我现在还不知道有一个可用的开源.

如果不可能,最好的选择是什么(而不是清单广播接收器)?

同样,这取决于"这个"到底是什么.例如,如果您试图说"我想经常控制,但只有设备插入",您可以使用AlarmManager,然后在继续工作之前检查设备是否已插入.


Alo*_*lok 2

重要更新

从现在开始,每个人都应该使用 WorkManager 来执行可延迟的后台任务。

  • 该库向后兼容
  • 它使用 JobScheduler、FirebaseJobDispatcher 或 AlarmManager
  • 无需依赖播放服务库。
  • 由 Google 推荐用于可推迟的后台工作。
  • 可以使用链接、约束等功能。

https://developer.android.com/guide/background/#workmanager https://developer.android.com/topic/libraries/architecture/workmanager/