首页 > 解决方案 > Android 定期作业计划程序在 10-12 小时左右后停止运行

问题描述

我正在使用 JetPack/Androidx 的 JobScheduler API 设置定期作业。我安排它每 15 分钟运行一次,唯一的限制是设备何时连接到任何网络。

作业在 10-12 小时的窗口内被安排并运行了好几次。当设备处于打盹或睡眠模式时,作业运行的频率会发生变化,但这很好。当设备再次唤醒时,作业会更频繁地运行 - 到目前为止一切都很好。

现在,在 10-12 小时后,即使我将设备/屏幕保持打开一段时间,这项工作也根本不会运行。如果我查找定期作业状态(通过 WorkInfo),它会以 ENQUEUED 形式返回。但它从不运行。

知道有什么问题吗?

谢谢!

编辑:在某些作业运行期间(当它被安排时),我遇到了一些异常(我们故意关闭服务器以测试某些场景)。因此,当应用程序无法连接到服务器时,会出现诸如 SocketException 之类的异常。但是所有这些异常都会被捕获,并且响应总是Result.success();. 不确定,如果 Job Scheduler 知道这是抛出了一些异常(尽管被doWork函数捕获),并自动退出 Job?

标签: androidandroid-jobscheduler

解决方案


推荐阅读