gpt4 book ai didi

android.app.job.JobScheduler 代替 WakefulBroadcastReceiver 的用法

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:58:54 29 4
gpt4 key购买 nike

作为here描述了通常的类 WakefulBroadcastReceiver 已弃用。

因此,现在无法像以前的 SDK 版本那样创建计划任务。谷歌说,我必须使用

https://developer.android.com/reference/android/app/job/JobScheduler.html

但是如何呢?

那么,现在最实用的后台定时任务解决方案是什么?

AlarmManager 不再有用了吗?

我的应用程序每天唤醒几次并使用 AlarmManager 更新通知。我不太确定我必须改变什么。我必须实现什么?旧 API 和新 API?或者只有最新的解决方案?

最佳答案

now this is not possible to create a scheduled tasks like for previous SDK releases

WakefulBroadcastReceiver 从来都不是唯一的选择。例如,我的 WakefulIntentService 可以追溯到 2009 年。而 the JobIntentService添加到支持库取代了这两者。

But how?

嗯,JobScheduler 包含在 the JavaDocs 中和 elsewhere in the documentation ,以及有关 Android 应用程序开发的书籍和类(class)。

what's the most useful solution for background scheduled tasks nowadays?

这完全取决于你想如何定义“有用”,我不知道你的定义。

一般来说:

  • 尽可能使用JobScheduler

  • 如果您正在编写闹钟应用程序,请在 AlarmManager 上使用 setAlarmClock()

  • AlarmManager 上使用其他 set...() 方法以向后兼容 Android 5.0 之前的设备,可能是通过包装器库(例如,印象笔记的android-job)

  • 在可行且您能够依赖该推送消息解决方案的情况下使用推送消息(例如,FCM)

Is AlarmManager not longer useful?

做一些任何的周期性后台工作对于某些“有用”的定义来说“不再有用”。 Android 6.0 中引入的打盹模式和应用待机,从用户的角度来看,基本上使周期性的后台工作变得不可靠。

What I have to implement? The old API and a new one? Or only up-to-date solution?

抽象地回答这个问题是不可能的。 Android 8.0 或支持库中没有任何内容可以阻止您像以前一样使用 AlarmManager

关于android.app.job.JobScheduler 代替 WakefulBroadcastReceiver 的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45964088/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com