由于Android Oreo后台执行限制,文档建议将IntentService
重构为JobIntentService
。
JobIntentService
立即作为Oreo下面的IntentService
运行,但在Oreo+上调度作业
https://developer.android.com/reference/android/support/v4/app/jobintentservice
在什么情况下,将正常的IntentService
作为前台服务
运行并带有持久通知是有意义的,何时JobIntentService
更好?
我可以在JobintentService
中看到一个缺点是它不能立即启动。
前台服务不会受到打瞌睡的影响,但如果你需要在屏幕关闭时继续任务,你仍然必须使用唤醒锁。
JobIntentService(使用JobScheduler)为您管理唤醒锁,但您对何时启动作业的控制较少。
我会将前台IntentService(或Service)用于应立即运行且不应被系统暂停/终止的高优先级任务(例如下载数据库)。