Android JobScheduler的兼容版本 - 替代方案

时间:2014-08-08 12:12:41

标签: android android-5.0-lollipop

是否有一个库或至少一些开源示例提供了新的Android-L JobScheduler API的功能。这并不难实现我自己的版本(功能非常有限),但另一方面它也不是微不足道的。

总而言之,至少可以提供新JobScheduler API功能的子集吗?

4 个答案:

答案 0 :(得分:8)

只需使用GCM Network Manager即可。它提供API来安排任务。它适用于API前级21设备。在API级别21+设备上,它在内部使用Job Scheduler。

答案 1 :(得分:7)

你可以自己做一些,但不幸的是,一个应用程序本身不能实现与许多作业调度程序API相当的功能。问题是监视作业调度程序提供的几个执行条件(特别是计费状态,设备空闲和连接)将要求您的应用程序不断运行,只是为了接收有关这些状态的广播 - 以及运行的性能成本即使你的应用程序是唯一一个这样做的人,它也会不断超过其他好处。如果每个应用程序都试图连续运行以进行相同类型的监控,那么用户的体验将会非常糟糕。

你能以合理的方式亲近的最近就是提供服务"偶尔"检查您感兴趣的限制因素,如果他们在您检查时没有按住,请退回并稍后重试。你也需要注意你如何安排事情 - 特别是,如果你将要使用网络,你需要非常小心你不是意外导致大量设备同时攻击网络。如果他们从网络上的每台设备上看到来自您应用的同步流量,则手机运营商会非常不满意。另外,请尽量避免使用确切的警报,以便操作系统有余地批量处理您的应用与其他人的工作。

不幸的是,设备闲置/用户活动很难让您的应用自行跟踪,但连接和充电状态随时可用。

您可以使用的最终工具是Sync Manager,它需要使用更多基础架构,但确实提供了一些相当强大的调度功能,尤其是在连接要求方面。

答案 2 :(得分:5)

Android Lollipop的JobScheduler向api 10+的后端 https://github.com/evant/JobSchedulerCompat

答案 3 :(得分:2)

截至2015年11月,该图书馆https://github.com/evant/JobSchedulerCompat提到它未得到积极维护

  

警告此项目未得到维护!

这是一个名为Trigger https://github.com/airk000/Trigger的库,它也声称是JobScheduler服务的后端,并且根据其文档具有以下功能。

  1. 支持多项条件与一项工作相结合
  2. 内部条件:设备充电,未经测量的网络和空闲状态
  3. 支持持久作业,意味着可以在设备重启后触发持久作业
  4. 支持工作的截止日期,最后一次被触发的机会
  5. 允许您的工作操作在后台或主线程中运行,请按照您的配置进行操作