- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
作为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/
我想做的是分派(dispatch)一个 Job,然后在前一个 Job 完成后继续分派(dispatch)同一个 Job,这样就可以连续循环分派(dispatch) Job。如选项一所示,这以前是与数据
我想知道当一个过程通过一个作业执行时会发生什么,在它完成之前是作业调用该过程的下一次执行的时间。这是我创建的工作: DECLARE X NUMBER; BEGIN SYS.DB
我使用以下代码显示超时为 120 秒的 PowerShell 作业的结果。我想通过合并 Write-Progress(基于完成的作业数)来增强此代码。我尝试使用 this example然而,作为引用
我使用以下代码显示超时为 120 秒的 PowerShell 作业的结果。我想通过合并 Write-Progress(基于完成的作业数)来增强此代码。我尝试使用 this example然而,作为引用
这个关于 ECMAScript 规范(ECMA-262 第 8 版)的问题 这些天,我对作业和作业队列有点困惑。 这里有一些问题。 1:在ECMA-262中,有两种作业队列。一个是 ScriptJob
子进程是作业的一部分,由创建作业的进程启动。父进程尚未设置作业属性以允许脱离作业。需要在 JOB 上设置“JOB_OBJECT_LIMIT_BREAKAWAY_OK”标志以允许子进程脱离作业,但未设置
有没有人有类似于Path's Android Priority Job Queue的iOS作业队列?他们不介意与社区分享?我是 iOS 的新手,所以我不确定平台本身是否提供这样的解决方案。在 Andr
我正在关注 this在 Heroku 上安排我的 Django cron 作业。 程序文件: web: gunicorn tango.wsgi --log-file - clock: python c
UI协同程序指南包含有关如何管理UI协同程序生命周期的section。它说明了我们应该创建一个顶级Job实例,并将复合协程上下文contextJob + UI传递给我们启动的所有协程: launch(
我在 Spark 上创建了一个 Master 和一个 Worker。然后我创建了一个 Spark 流作业并尝试提交它,但在 Master 上它显示了一长串 java 错误 使用此命令启动主控: spa
我必须在 Spring Batch 上设置 jobparemeters,但使用 Spring Boot Batch 则无法轻松做到这一点。 我需要重新运行作业,但如果参数相同,spring-batch
众所周知,Apache Pig 是一种数据流语言。如果我编写了一个 Pig 脚本并且 Pig 决定拆分并运行两个或多个作业来执行手头的任务,那么 Pig 如何存储它从作业 1 传递到作业 2 的数据?
我以为他们指的是 Reducer 但在我的程序中我有 public static class MyMapper extends Mapper 和 public static class MyReduc
我需要创建一个恢复模式。 在我的模式中,我只能在给定的时间窗口内启 Action 业。 如果作业失败,它只会在下一个时间窗口重新启动,完成后我想开始为此窗口提前计划的计划作业。 作业之间的唯一区别是时
使用 play 框架 1.2.4 和 scala。我几乎没有类似的游戏工作 @OnApplicationStart class MyOtherJob extends Job { ... } @Ev
作业通知选项“作业成功时”和“作业完成时”有何区别。从表面上看,我假设“作业完成时”选项包含作业成功和作业失败,而“作业成功时”选项仅包含作业成功运行时。这是正确的吗? 最佳答案 作业成功时作业成功完
我正在尝试创建迁移,但由于以下错误而失败: Error from server (BadRequest): error when creating "kubernetes/migration-job.
Cron Job 和 hybris 中的 Job 有什么区别? 两者的创建/实现之间有什么区别? 最佳答案 下图描述了 Hybris 中 Jobs/Cronjobs 工作原理的完整 View
我正在运行多个作业,并且我希望每个作业都有一个单独的作业存储库(内存中实现)。 请在下面找到我尝试过的 bean 定义。请注意,我尝试指定具有作用域原型(prototype)的 bean。 我收到 j
Quartz 中是否有一种机制可以在启动另一个作业时删除现有作业?我需要暂停其他作业的原因是因为新作业需要所有资源可用,只有当其他作业未运行时才会如此。 这是一个示例: 我有 2 份工作:工作 A 和
我是一名优秀的程序员,十分优秀!