问题标签 [android-jobscheduler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1055 浏览

android - Android Job Scheduler:只要有数据网络就执行作业

我正在使用作业调度程序服务安排作业。我的工作开始的条件是任何network(setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)). 第一次,我从用户输入(比如:点击一个按钮)安排一个工作,所以当用户点击这个按钮时,一旦网络可用,我的工作就会开始。

我的问题是,我的工作应该在没有用户输入的情况下开始。这可能吗?如果是,请建议。

(我不想监听网络变化监听器。因为它从 Android N 开始有一些限制)

0 投票
2 回答
974 浏览

android - android JobScheduler 可以替代 RxJava 吗?

这是使用rxjava(and retrofit) 的典型网络调用。可以JobScheduler用这个代替吗?如果是,如何?最重要的是,是否推荐?

0 投票
0 回答
279 浏览

android - JobScheduler.schedule() 使用 setPersisted(true) 时返回零

我无法使用setPersisted(true). 我在我的 AndroidManifest.xml 中有RECEIVE_BOOT_COMPLETED权限。我得到的错误是:

有谁知道是什么原因造成的?如果我再次运行我的应用程序并注释掉setPersisted(true),一切正常。相关代码:

还有我的 AndroidManifest.xml:

0 投票
2 回答
13192 浏览

android - Android 在特定时间开始运行 JobScheduler

我想每天在特定时间启动 JobScheduler 并在 3 小时后完成。

我有每 20 分钟和 3 小时触发一次作业的部分,但是在 JobInfo.Builder 类中没有在确切时间开始作业的选项。

查看 JobInfo.Builder类概述,那里没有设置启动 JobScheduler 的时间。

显然,我不想整天运行它,并检查时间是否匹配,这将消耗比需要更多的电池,并且是糟糕的编程。

我正在考虑在我指定的时间发出警报并触发这项工作,但这似乎有点矫枉过正。

如果您对该问题有任何其他解决方案,除了触发此 JobScheduler 的 AlarmManger 之外,将不胜感激。

0 投票
4 回答
35547 浏览

android - 作业计划程序未在 Android N 上运行

Job Scheduler 在 Android Marshmallow 和 Lollipop 设备上按预期工作,但它没有运行并且 Nexus 5x(Android N 预览版)。

调度作业的代码

服务在清单中定义为:

有人在 Android N(预览版)上遇到这个问题吗?

0 投票
1 回答
1748 浏览

android - JobScheduler setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)不工作

以下代码永远不会运行。该作业已成功安排,但从未实际执行。我什至设定了 1 分 10 秒的最重要的最后期限。该设备始终连接到 WiFi,即使等待 5 小时后,我也从未看到它启动。我究竟做错了什么?

0 投票
2 回答
470 浏览

android - Android N:处理缺少 CONNECTIVITY_CHANGE

AppWidgetProvider的(当然是 a BroadcastReceiver)已注册为 receive CONNECTIVITY_CHANGE,因此我可以在网络恢复后立即更新小部件(尽管仅在需要时,即如果由于缺乏连接而错过了先前的更新)。

但正如这里所说,这在 Android N 中将不再可能。建议使用JobScheduler,它允许您指定作业仅在通过该.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)方法连接到网络时才运行。

但是,我看不出如何使用它来复制我想要的行为。在我看来,如果在调度 Job 的时候没有网络,该.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)方法会导致 Job根本不运行,并且不会导致 Job 耐心等待,直到有网络然后运行(这是我需要的)。

那么,如何使用 Android N 保留我需要的行为?

0 投票
1 回答
2141 浏览

android - Android JobInfo builder periodiy daily

我正在尝试创建一个重复的异步任务来使用 JobScheduler 和JobService调用 Web 服务。但我的想法是尝试每天执行一次此任务,并且始终在同一时间执行。甚至可能让用户更新任务启动日期的时间。

JobInfo.Builder是否支持这种可能性?因为我使用的是“setPeriodic”,但我认为这是不可能的。

我应该更好地使用AlarmManager来实现此功能吗?

这是现在调用服务的代码:

0 投票
1 回答
7626 浏览

android - JobScheduler.schedule(job) 没有启动 JobService

我正在使用JobScheduler的库在棒棒糖前设备上工作。我正在使用棒棒糖设备。问题是 mJobScheduler.schedule(job) 应该启动我的作业服务,但它没有启动。此外,当我包含 .setPeriodic(2000) 方法时,应用程序会因此崩溃

堆栈跟踪。

我的主要活动

我的服务类

我的清单文件

0 投票
1 回答
798 浏览

android - Firebase JobDispatcher 是否使用 JobScheduler?

由于我的应用程序必须可用于 Android 4.x 版本,因此我不能仅依赖 JobScheduler 进行后台活动。Firebase JobDispatcher 向后兼容我需要的版本,所以我对其进行了一些测试。

我的期望是,它在 Android <5 时使用 Google Play 服务,在 5+ 时使用 JobScheduler API,正如在 Google I/O 2016 上的Android 电池和内存优化谈话的这张幻灯片中所见。

我使用 JobDispatcher 在自己的应用程序中安排的作业和 Firebase JobDispatcher 附带的 testapp 可以正常工作。打电话时我看不到任何活动adb shell dumpsys jobscheduler。当我直接使用 JobScheduler 时,我可以毫无问题地看到那里的作业。

所以我猜我上面链接的幻灯片是错误的?在 Android 5+ 上是否可以让 JobDispatcher 使用 JobScheduler?也许使用自定义驱动程序?