stopSelf()是否保证服务停止(以及如何)?如果是这样,是否需要返回(以防内部调用stopSelf)?

时间:2019-03-26 20:18:48

标签: android android-service android-intentservice

我的问题与ServiceIntentService有关。问题如下。

stopSelf()(或Service)某处呼叫IntentService是否可以保证服务停止?

并且(如果从Service中调用了stopSelf()),是否必须在stopSelf()调用之后不执行代码的return语句?

据我所知,调用stopSelf()可以在异常抛出时停止执行代码,否则我找不到逻辑。

1 个答案:

答案 0 :(得分:1)

  

在Service(或IntentService)中的某个地方调用stopSelf()是否可以保证服务停止?

是的。

  

在stopSelf()调用之后,是否必须强制执行return语句才能不执行代码?

如果函数的返回类型不是GCM,则仍然需要

return(否则您的代码将无法编译)。 void语句很可能会执行,因为return会导致stopSelf()异步停止。

  

据我所知,调用stopSelf()可以在代码抛出异常时停止执行代码,否则我找不到相应的逻辑。

通过调用Service,您会通知系统stopSelf()已完成其“作业”,因此系统可以释放Service所拥有的资源。这与Service的{​​{1}}的执行非常相似,当用户按下后退按钮时,系统会完成Activity的释放资源。