Android JobIntentService已被弃用。

22

JobIntentService类似乎已经被弃用了。然而,Android 服务文档中表示:“您可以使用JobIntentService替代IntentService,并兼容新版本的Android。”

那么我们应该使用什么来替代JobIntentService呢?


1
WorkManager 可能是一个候选者。这取决于 IntentService/JobIntentService 应该执行什么任务。 - CommonsWare
1
那么 IntentServiceJobIntentService 从来都不是可行的选择。使用一个带有前台通知的普通 Service,用于你的倒计时器。 - CommonsWare
6
有人知道这句话的意思吗:“此类已被废弃,推荐使用 Android Jetpack Android O 或更高版本”?在我看来,这并不是恰当的语言,可能是错误的。 - Simon Malone
8
安卓团队在干什么?为什么会给我们提供 IntentService > JobIntentService 和现在的 WorkManager,如果它们将来要被弃用。只有他们知道什么时候会废弃 WorkManager。 - Alex
3
经典的 Googlers。IntentService 就工作得很好!自从他们强制我们在 Oreo 上迁移到 JobIntentService 后,后台进程就不可靠了 (https://stackoverflow.com/questions/63111658/jobintentservice-onhandlework-is-not-always-called)。现在他们甚至废弃了 JobIntentService,换成了 WorkManager,而且 - 惊讶惊讶 - 也不可靠,并且可能会很快被废弃。天哪 Google,你做事之前有没有想过????无能的白痴...啊。 - qkx
显示剩余6条评论
1个回答

16

@CommonsWare指出,我有两个替换JobIntentService的选项:

  1. 使用前台服务
  2. 使用WorkManager长时间运行的Worker

Android 服务文档中提到:

WorkManager API提供了一种灵活的方式来调度任务,并能够在需要时将这些作业作为前台服务运行。在许多情况下,使用WorkManager比直接使用前台服务更可取。

由于Google似乎正在推动人们使用WorkManager,所以我决定使用它。


3
WorkManager似乎用于持久性工作。我不需要持久性,只需要替换IntentService。我应该选择什么? - JohnyTex
1
@JohnyText,你觉得使用一个新的ThreadService中执行后台任务怎么样? - Krot
这些选项中哪一个更适合(可靠地)在后台更新主屏幕小部件(RemoteViews)?我有一个问题,我的小部件有时无法更新,因为JobIntentService不可靠,请参见此处:https://stackoverflow.com/questions/63111658/jobintentservice-onhandlework-is-not-always-called - qkx
WorkManager 没有像 Services/JobIntentService(Intent)那样的额外功能。这对于像活动识别之类的 API 不利。 - androidXP

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接