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