【问题标题】:Can onDestroy() be called without onHandleWork() in JobIntentService?在 JobIntentService 中可以在没有 onHandleWork() 的情况下调用 onDestroy() 吗?
【发布时间】:2020-05-29 06:56:53
【问题描述】:
我正在使用JobIntentService.enqueueWork()
我想知道即使没有在 JobIntentService 中调用 onHandleWork(),是否也可以调用 onDestroy()。
基本上,JobIntentService 的生命周期是什么。在调用onDestroy() 之前,是否保证至少调用一次onHandleWork()?
【问题讨论】:
标签:
android
service
nullpointerexception
android-lifecycle
jobintentservice
【解决方案1】:
JobIntentService 的行为因目标设备上运行的 Android 版本(API 级别 26 之前或 API 级别 26 或更高版本)而异。
但是,通常您可以假设onHandleWork() 在onDestroy() 之前至少被调用一次。如果没有工作,就没有理由启动Service。一般Service只有在队列中有工作时才会启动,在这种情况下onHandleWork()会在Service启动后立即调用。