问题标签 [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.
android - Android Job Scheduler:只要有数据网络就执行作业
我正在使用作业调度程序服务安排作业。我的工作开始的条件是任何network(setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY))
. 第一次,我从用户输入(比如:点击一个按钮)安排一个工作,所以当用户点击这个按钮时,一旦网络可用,我的工作就会开始。
我的问题是,我的工作应该在没有用户输入的情况下开始。这可能吗?如果是,请建议。
(我不想监听网络变化监听器。因为它从 Android N 开始有一些限制)
android - android JobScheduler 可以替代 RxJava 吗?
这是使用rxjava
(and retrofit
) 的典型网络调用。可以JobScheduler
用这个代替吗?如果是,如何?最重要的是,是否推荐?
android - JobScheduler.schedule() 使用 setPersisted(true) 时返回零
我无法使用setPersisted(true)
. 我在我的 AndroidManifest.xml 中有RECEIVE_BOOT_COMPLETED
权限。我得到的错误是:
有谁知道是什么原因造成的?如果我再次运行我的应用程序并注释掉setPersisted(true)
,一切正常。相关代码:
还有我的 AndroidManifest.xml:
android - Android 在特定时间开始运行 JobScheduler
我想每天在特定时间启动 JobScheduler ,并在 3 小时后完成。
我有每 20 分钟和 3 小时触发一次作业的部分,但是在 JobInfo.Builder 类中没有在确切时间开始作业的选项。
查看 JobInfo.Builder类概述,那里没有设置启动 JobScheduler 的时间。
显然,我不想整天运行它,并检查时间是否匹配,这将消耗比需要更多的电池,并且是糟糕的编程。
我正在考虑在我指定的时间发出警报并触发这项工作,但这似乎有点矫枉过正。
如果您对该问题有任何其他解决方案,除了触发此 JobScheduler 的 AlarmManger 之外,将不胜感激。
android - 作业计划程序未在 Android N 上运行
Job Scheduler 在 Android Marshmallow 和 Lollipop 设备上按预期工作,但它没有运行并且 Nexus 5x(Android N 预览版)。
调度作业的代码
服务在清单中定义为:
有人在 Android N(预览版)上遇到这个问题吗?
android - JobScheduler setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)不工作
以下代码永远不会运行。该作业已成功安排,但从未实际执行。我什至设定了 1 分 10 秒的最重要的最后期限。该设备始终连接到 WiFi,即使等待 5 小时后,我也从未看到它启动。我究竟做错了什么?
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 保留我需要的行为?
android - Android JobInfo builder periodiy daily
我正在尝试创建一个重复的异步任务来使用 JobScheduler 和JobService调用 Web 服务。但我的想法是尝试每天执行一次此任务,并且始终在同一时间执行。甚至可能让用户更新任务启动日期的时间。
JobInfo.Builder是否支持这种可能性?因为我使用的是“setPeriodic”,但我认为这是不可能的。
我应该更好地使用AlarmManager来实现此功能吗?
这是现在调用服务的代码:
android - JobScheduler.schedule(job) 没有启动 JobService
我正在使用JobScheduler的库在棒棒糖前设备上工作。我正在使用棒棒糖设备。问题是 mJobScheduler.schedule(job) 应该启动我的作业服务,但它没有启动。此外,当我包含 .setPeriodic(2000) 方法时,应用程序会因此崩溃
堆栈跟踪。
我的主要活动
我的服务类
我的清单文件
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?也许使用自定义驱动程序?