问题标签 [android-job]

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 投票
0 回答
612 浏览

android - 如何让 JobIntentService 在 Oreo 上运行?

我有两个服务。接收呼叫状态的句柄之一。其他处理覆盖窗口。

我的问题是我无法保持服务运行。我可以重构接收呼叫状态服务。它使每个状态发生变化并像新工作一样运行。但是另一个显示叠加的,我不能这样做。我需要在某处保留覆盖窗口参考,我不想这样做。我需要保持该服务运行。我试过使用 isStopped 方法。这不符合我的需要。我也可以在 onHandleWork 中添加 while 循环,但它看起来不是一个合适的解决方案。有人有更好的办法让服务在 Android 8 上运行吗?

0 投票
1 回答
935 浏览

android - evernote/android-job - 如何定期安排和运行

我已经尝试了evernote-android-job中的所有以下方法。似乎 schedulePeriodicJob 方法在某个时间间隔内运行,而 scheduleAdvancedJob 方法只运行一次。

通过一些示例帮助我如何设置 setExecutionWindow、setExact 和 setPeriodic 的值?

0 投票
0 回答
734 浏览

android - 我的工作未在待处理工作中列出:android JobScheduler

设想

嗨,我有一个 JobService,当我来到我的 HomeScreen 时会启动它。这项工作服务从我的数据库中取出我的请求,并在互联网可用时执行它们。因此,即使设备处于脱机状态,我也会将我的事务插入我的数据库中,每当互联网出现时,我的 JobService 都会执行这些事务。

问题

问题是我从多个屏幕来到我的 HomeScreen。所以每次我来到 HomeScreen,我都会再次启动我的 JobService。因此,如果我在互联网出现之前三次访问我的 HomeScreen,那么现在三个不同的服务正在为同一个任务运行。所以我想检查服务是否已经在运行,我不会启动一个。

我试过的

启动我的 JobService 的代码非常简单。我写了一个方法来启动它并调用它OnCreate()

我打电话executeQueue进来onCreate()。我在 StackOverflow 上搜索并找到了这个链接:

如何检查 JobService 是否在 android 中运行?.

所以我现在在我的 HomeScreen 中有这个方法来检查我的 JoService 是否正在运行:

但是在这种方法中,它永远不会列出我正在运行的 JobService 并且我false每次都得到,因此再次遇到我的 JobService 多个实例的相同问题。

我希望我把我的问题说清楚了。

0 投票
1 回答
2804 浏览

java - 如何在固定时间为每天的工作设置准确的时间到android工作?

我正在尝试安排每天晚上 10 点运行的作业。

我尝试使用 setExact 方法并通过将 22 小时转换为毫秒来提供毫秒数,为了进行测试,我执行了应用程序并将系统时间更改为晚上 10 点,但作业没有执行。

我还尝试给出即将到来的时间,因此将 12:45 转换为毫秒并提供给 setExact 方法。但这也没有用。

我该如何设置和测试?

文件跟踪作业

主要活动

主应用

DemoJobCreator

我还安排了一项定期工作,这项工作不适用于像 red mi 这样的设备,在一台三星设备上它没有重复,但在 moto g4 plus 上运行良好。

有人可以帮忙吗?谢谢..

0 投票
0 回答
58 浏览

android - 当未满足强制要求时,是否忽略 Enote Android 作业中的执行窗口结束

我正在使用Evernote 的 Android 作业库来安排作业在设备在线时运行,代码如下:

正如我所观察到的,调度程序正在等待网络,并且 - 当设备联机时 - 运行作业,即使指定为执行窗口结束的时间(在我的情况下SECONDS.toMillis(10))已经过去。所以我的问题是 - 这个参数(endInMssetExecutionWindow方法中)在被调用时是否完全被忽略setRequirementsEnforced(true)

0 投票
0 回答
114 浏览

android - 作业在应用程序启动时运行,不应该

我有一个来自 Evernote 库的 android-job。该作业设置为在某些情况下定期运行。所以只有当我想定期开始工作时才会调用工作构建(这不是在我的应用程序的开头)

创建一个作业服务:

就业创造者:

应用程序类中添加注册作业所需的行:

此时应用程序启动并创建了 JobService 类。(好的)但是在这个类中,有这个方法scheduleJobPeriodically,并且这个方法被触发并且它不应该被触发,因为我没有明确地启动它。我已经在调试模式下启动了我的应用程序,并且我确信不会直接调用定期创建,以及为作业设置标签的 JobRequestBuilder。但是onRunJob中的代码被触发了,这就是问题所在。

预先感谢。

0 投票
1 回答
43 浏览

android-job - 这个日志是什么意思?

我在 20:23(包括 GMT 5:30)安排了一份工作。

我正在尝试从午夜 00:01 到 20:00(晚上 8:00)安排日常工作。

我注意到以下日志:

这个日志具体想告诉我什么?( start 03:36:35, end 23:36:35 (from now))?

我是否正确安排了日常工作?

0 投票
1 回答
322 浏览

android - 在 Evernote Android-jobs 中设置间隔小于 15 分钟

我正在使用Evernote Android Jobs库在我的 Android 8.1.0上安排任务。定期作业的默认最小间隔为 15 分钟,这使得调试非常耗时。我发现一篇文章说我们可以使用

用于更短的调试间隔,但是当我使用它时,我在 getConfig() 下得到一条波浪线。如何减少间隔时间?

Android-jobs 版本1.2.6

0 投票
1 回答
479 浏览

android-jobscheduler - Oppo Realme1 Job Schduler 定期工作的最小间隔为 1 小时

目前我正在使用WorkManager 1.0.0-alpha05. 我使用以下设置定期工作请求code。当间隔低于 1 小时时,In Oppo Realme(Android 版本 - 8.1.0 , ColorOSVersion V5.0) 作业在1hr 处执行。当间隔大于1hr 作业在确切时间执行。当间隔小于1小时时,作业在1小时执行。

请让我知道所需的任何日志或信息:

安排定期作业的代码:

在所有其他设备中定期工作请求间隔是正确的。在 Oppo Realme 1 工作在1小时执行。

Oppo Realme 1:间隔 15 分钟

我使用以下命令调试 Job Schduler: adb shell dumpsys jobscheduler

Oppo Realme 1:间隔 1 小时 10 分钟

日志:

其他设备:

日志 :

我也尝试使用不同的库。我在 Job Scheduler 和 Android-Job 中发现了相同的行为。作业周期长度为 15 分钟,但执行时间为 1 小时,但是当我尝试使用 Firebase 作业调度程序时,作业以正确的 15 分钟间隔时间执行。

我使用以下命令调试 Job Scheduler 和 Android-Job: adb shell dumpsys jobscheduler

作业调度器:

间隔:15 分钟输出 :1 小时

日志:

Android-工作:

间隔:15 分钟输出:1 小时:

日志:

Firebase 作业调度程序:

我使用以下命令调试 firebase 作业调度程序: adb shell "dumpsys activity service GcmService | grep com.jobscheduler_periodic"

间隔: 15 分钟输出:15 分钟

日志

0 投票
0 回答
215 浏览

android - 从 Evernote Job 迁移到 Workmanager

我们使用https://github.com/evernote/android-job为我们的应用程序进行后台同步。现在我们计划迁移到 Workmanager。

我的问题是,在我们的新版本中,我们将包含与 workmanager 相关的类,并删除与 android-job 相关的类以及 evernote 库。对于我们现有的用户,一旦他们升级到这个新版本,如果旧工作被解雇,会发生什么?如果应用程序在调用期间崩溃?

这是在升级期间删除作业相关文件的好习惯吗?