android - JobScheduler Android Oreo 问题

标签 android android-8.0-oreo android-jobscheduler foreground-service

在我当前的公司应用程序中,我有一个 ForegroundService 在工作人员值类(登录到应用程序)时运行。 在用户登录时保持该前台服务运行很重要。为了从该前台服务以某种方式被终止(用户任务意外滑动或系统终止)的情况中恢复,我使用 Jobscheduler 实现了一个定期的 JOB,它在它被获取时重新激活 ForegroundService关闭。此技术在 Android 8 OREO 之前运行良好。 START_STICKY 和其他技术本身并不能解决问题。

在 Android 8 中,一旦前台服务被终止,周期性作业也会被终止。我在 logcat 中收到不允许作业运行的通知。据我了解,即使应用程序处于后台或被杀死,乔布斯也应该能够运行。并且它以应有的方式在奥利奥之前的设备上工作。

据我所知,我可以通过在应用程序设置中启用“自动启动”选项来解决这个问题。但由于无法知道员工是否打开了它,因此这也不是一件可靠的事情。

所以我的问题: - 为什么作业调度程序在 Android 8 中停止工作? - 有没有其他可靠的技术可以让我的 ForegroundService 从 ANDROID OREO 的关闭中恢复?

我读过 https://medium.com/exploring-android/exploring-background-execution-limits-on-android-oreo-ab384762a66c但这并没有回答我的问题

非常感谢

最佳答案

你试过吗

                .setPersisted(true)

注意:需要 RECEIVE_BOOT_COMPLETED 权限。

你也可以看到这个问题。

Job Scheduler not running on Android N

关于android - JobScheduler Android Oreo 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51983002/

相关文章:

android - 如何获取有用的崩溃日志信息 Android Cocos2dx C++

Android WorkManager 在使用 Robolectric 进行测试时出现错误

android - 在 Android studio 项目命令 'C:\Program Files\Java\jdk1.7.0_25\bin\java.exe' 中获取错误'以非零退出值 2 完成

android - 如何在整个应用程序中保持 XMPP 连接有效?

Android - 在特定日期和时间在 Firebase 作业调度程序中运行作业

android 通知 channel 声音不工作

Android BiometricPrompt 兼容库

android - 定期 JobScheduler 不遵守约束