首页 > 解决方案 > stopSelf() 是否保证服务停止(以及如何停止)?如果是这样,是否需要返回(以防 stopSelf 在内部调用)?

问题描述

我的问题关注ServiceIntentService。问题如下。

在(或)stopSelf()某处打电话是否保证服务停止?ServiceIntentService

并且(如果从服务中调用 stopSelf())是否强制返回语句在stopSelf()调用后不执行代码?

据我所知,调用stopSelf()可以停止代码执行,以防它引发异常,否则我找不到逻辑。

标签: androidandroid-serviceandroid-intentservice

解决方案


在服务(或 IntentService)的某处调用 stopSelf() 是否保证服务停止?

是的,它确实。

并且在 stopSelf() 调用之后是否强制返回语句不执行代码?

return如果函数的返回类型不是void(否则您的代码将无法编译),则仍然需要。该return语句很可能将作为异步stopSelf()停止的结果执行。Service

据我所知,调用 stopSelf() 可以停止代码执行,以防它引发异常,否则我找不到逻辑。

通过调用stopSelf()您通知系统Service完成其“工作”,以便系统可以释放Service所持有的资源。这与用户按下后退按钮时调用的Activity's 的执行非常相似——系统完成释放资源。onBackPressed()Activity


推荐阅读