在 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() 吗?的主要内容,如果未能解决你的问题,请参考以下文章

来自 JobIntentService 的吐司

我们如何在 Scala 中使用 android JobIntentService?

Activity 和 JobIntentService 生命周期

【原创】JobIntentService使用

如何从 JobIntentService 中删除重复的意图

JobIntentService 的 onDestroy 被调用后会发生啥?