我必须定期在Android应用中通过网络执行后台数据同步到服务器。我正在使用JobScheduler
来执行此同步。
我可以从班级从onStartJob()
开始的类中的JobService
方法启动服务吗?如果作业运行时应用程序在后台,它将在Android 8.0(Oreo)中抛出IllegalStateException
吗?
答案 0 :(得分:0)
这里是Android-Job(https://github.com/evernote/android-job)库,它解决了不同Android版本(也包括Oreo)之间的后台作业调度问题。
它在单独的线程上执行Job,因此,很可能不需要启动新的/单独的服务。在执行作业时,库将处理唤醒锁获取并将其保留直到作业完成。
答案 1 :(得分:0)
在奥利奥(Oreo)中,如果要从JobScheduler onStartjob()
启动服务,则需要通过通知启动前景服务,因为启动普通后台服务会引发IllegalStateException