- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我在新的 Android API 21 中使用 JobScheduler 进行作业调度时遇到问题。这是我以 60 秒间隔安排作业的代码,如下所示:
ComponentName serviceName = new ComponentName(this, MyJobService.class);
JobInfo jobInfo = new JobInfo.Builder(0, serviceName)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.setPeriodic(60000)
.build();
我的 JobService 只在 Logcat 中打印运行时间,但日志显示服务在这一刻运行:
03-18 08:37:26.334: I/JOB(32662): Wed Mar 18 08:37:26 BRT 2015
03-18 08:37:56.364: I/JOB(32662): Wed Mar 18 08:37:56 BRT 2015
03-18 08:39:21.418: I/JOB(32662): Wed Mar 18 08:39:21 BRT 2015
03-18 08:41:51.670: I/JOB(32662): Wed Mar 18 08:41:51 BRT 2015
03-18 08:45:52.192: I/JOB(32662): Wed Mar 18 08:45:52 BRT 2015
03-18 08:54:20.678: I/JOB(32662): Wed Mar 18 08:54:20 BRT 2015
这很奇怪,因为我用 setPeriodic(60000) 方法设置的 Job 应该在 1 分钟内至少执行 1 次。也很好奇运行之间的间隔是如何增加的。此时时间是 Wed Mar 18 09:09:00 BRT 2015 并且 Job 不再执行。
是不是JobScheduler API的问题? (我在 Nexus 5 和 Android 5.0.1 中运行)
最佳答案
时间更改与重试作业的退避条件有关。默认情况下,它设置为指数。我猜当您通过调用 jobFinished(JobParameters params, boolean needsReschedule)
完成工作时,您也没有正确完成工作。
我写了一个blog post它专注于 JobScheduler 的所有小事情。我强烈推荐阅读它。
关于android - 在 Android 中使用 JobScheduler 调度作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29121703/
我知道 Android native (后 Lollipop)JobScheduler 和 GCM JobScheduler 都可以在重启后保留作业,但应用更新后呢?应用更新后我是否仍会调用作业? 谢
如何模仿 Android JobScheduler (或 GcmNetworkManager )Android 上 RxJava 的行为? 具体来说,我想要这个功能 了解网络 Activity 自动退
我有一个 jobscheduler,它发送由启动警报触发并被结束警报取消的通知,我有一个问题,如果我从最近的应用程序中删除应用程序或我重新启动手机,警报会在指定时间触发吗?以及作业调度程序会发生什么
注意:这不是重复的,请阅读问题 我想在设备每次充电和 WIFI 时运行一个作业。每次满足这些条件时,该作业最多必须运行一次。这意味着如果我让手机在 wifi 开启的情况下充电一夜,工作就不会重复。只有
我想每天调用一个方法来在我的应用程序中生成僵尸。 以下方法应创建执行此操作的 JobScheduler。 我的问题是:我是只调用一次这个方法,还是可以在应用程序启动时每次都调用它? public st
我正在使用 JobScheduler.setPeriodic() 来重复我的 JobIntentService。它第一次工作但从不重复。运行于安卓7.0 并发检查.java int mdelaymil
这可能吗?我需要启动我的前台服务,因为我在 UI 线程中使用它, 示例:每 25 分钟在我的应用中播放一个视频,该视频已关闭。 最佳答案 我认为这不是使用 JobScheduler 的最佳用例,但您可
我检查了从 Android API 级别 21 开始可以使用的 JobScheduler API。我想安排一个需要互联网并且每天只运行一次或可选的每周运行一次的任务(如果成功执行)。我没有找到关于这种
在 Android 模拟器上运行时,我无法让 JobScheduler 启动计划作业。如果我在运行 Android 6.0.1 的真实Samsung Galaxy S7 和 Nexus 5X 上进行测
我想在每天的特定时间启动 JobScheduler,并在 3 小时后完成。 我每 20 分钟触发一次作业,持续 3 小时,但在 JobInfo.Builder 类中没有在准确时间启 Action 业的
我的应用使用这种经典模式来安排周期性任务: 通过 AlarmManager 设置准确的闹钟(通过 setExactAndAllowWhileIdle(),因为即使在打瞌睡时它也必须关闭) 通过 Wak
这是我设置工作的方式: val builder = JobInfo.Builder(1, ComponentName(this, PullDataJob::class.java))
如何重新安排我使用 setPeriodic() 启动的 JobScheduler,我想稍后通过用户输入更改调度程序时间。 JobInfo.Builder builder = new JobIn
JobInfo.Builder 中的方法“setRequireDeviceIdle”到底是如何工作的?根据我在 Android 文档 (https://developer.android.com/re
我们正在通过 JobScheduler 实现作业用于后台加载数据。这项工作每天大约会触发一次。我们可以使用哪些工具来测试此功能(可能是 ADB)? 用例能够模拟作业运行所需的条件,或者只是明确地说“运
我正在试用 Android Lollipop 附带的新 JoScheduler API。到目前为止,我已经成功地创建并运行了一个延迟为 6000 毫秒的作业,没有任何网络要求。 但是,我刚刚尝试通过使
STEP_COUNTER 传感器的 Android 文档有点困惑。 根据这个:Android Sensor doc我应该始终注册 STEP_COUNTER 传感器,否则计步器传感器根本不会计数。这一切
我正在学习如何在 Android 中结合使用 JobSchedule 和 AsyncTasks。按照一些指南,我有以下 JobService 实现: @RequiresApi(Build.VERSIO
jobscheduler 每 10 分钟定期运行一次。一旦应用程序运行并保持每 10 分钟定期运行一次,我必须做些什么才能运行计划。现在发生的情况是:安装应用程序后,运行计划需要 10 分钟。如何让它
我遵循了一些关于 android 中的作业调度的在线教程,我尝试这样做,发现下面的代码编译没有错误。但问题是 onPostExecute/doInBackground 返回消息中没有 toast。有什
我是一名优秀的程序员,十分优秀!