在Android 8.0(Oreo)中从Job Scheduler启动服务

时间:2018-08-16 11:24:43

标签: android scheduling android-8.0-oreo android-jobscheduler

我必须定期在Android应用中通过网络执行后台数据同步到服务器。我正在使用JobScheduler来执行此同步。 我可以从班级从onStartJob()开始的类中的JobService方法启动服务吗?如果作业运行时应用程序在后台,它将在Android 8.0(Oreo)中抛出IllegalStateException吗?

2 个答案:

答案 0 :(得分:0)

这里是Android-Job(https://github.com/evernote/android-job)库,它解决了不同Android版本(也包括Oreo)之间的后台作业调度问题。

它在单独的线程上执行Job,因此,很可能不需要启动新的/单独的服务。在执行作业时,库将处理唤醒锁获取并将其保留直到作业完成。

答案 1 :(得分:0)

在奥利奥(Oreo)中,如果要从JobScheduler onStartjob()启动服务,则需要通过通知启动前景服务,因为启动普通后台服务会引发IllegalStateException