【发布时间】:2018-09-24 09:22:03
【问题描述】:
我有一个旧应用程序,其中每分钟使用AlarmManager 的setExact 调用服务,但在最新的 Android O 中,它不允许我运行服务以同样的方式。我无法使用前台服务,因为我不想在服务运行时显示任何通知。
我希望帮助我调整我的应用程序架构,以使我的代码可以在 Android O 中运行,并且更改最少。
当我在 Android 中运行我的应用程序时,它崩溃了:(。请在下面找到崩溃的堆栈跟踪。
java.lang.RuntimeException: Unable to create application com.***.***.***ControllerApplication: java.lang.IllegalStateException: Not allowed to start service Intent
Caused by: java.lang.IllegalStateException: Not allowed to start service Intent { cmp=com.***.***.qa/com.***.***.services.AlarmService
编辑:
我的应用程序中的任务是时间紧迫的,因此我在AlarmManager 中使用了setExact,但当前支持的API 都没有在准确的时间安排作业。话虽如此,如果我使用 JobScheduler/WorkManager,那么我的应用程序将出现故障。
【问题讨论】:
-
使用作业调度器
-
使用作业调度器或工作管理器
-
工作经理处于 Alpha 阶段,作业调度程序无法在准确的时间安排作业。
标签: android service background-service android-jobscheduler android-workmanager