早期版本的Android 5.0 JobScheduler API?

问题描述 投票:34回答:6

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

android android-5.0-lollipop
6个回答
1
投票

重要更新

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

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

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


23
投票

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

如果可能的话,它使用JobSchedulerGcmNetworkManager。否则它回落到AlarmManager。它还可以正确处理AlarmManager的不同API级别。这个blog post给你一个概述。

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


19
投票

Firebase JobDispatcher被介绍了。

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


18
投票

更新:

WorkManager被引入以取代下面。

更新:

Firebase JobDispatcher被引入以取代下面。


更新:

在Play Services 7.5中引入了GCM Network Manager

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


Github上的Evant用户正在创建一个Compat version of the JobScheduler API

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


9
投票

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

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

请记住,当插入设备时,JobScheduler不一定能让您控制。相反,它会使用这个事实,加上您的JobInfo和其他环境因素来确定何时给予您控制权。

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

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

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

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


1
投票

来到这个图书馆,没试过,但看起来很适合你想要的:https://github.com/airk000/Trigger

Evernote android-job可能是一个更好的解决方案:)

© www.soinside.com 2019 - 2024. All rights reserved.