我有关于Service
和IntentService
功能的问题。要询问的要点如下:
在Service
(或IntentService
)中手动调用stopSelf()
是否能保证服务停止?
如果在Service中的某个位置手动调用stopSelf(),调用后的代码是否会执行?// As I know, calling stopSelf() can stop code execution in case it throws an exception, else I can't find a logic for that.
1条答案
按热度按时间nbewdwxp1#
在Service(或IntentService)中调用stopSelf()是否保证服务停止?
是的,是的。
在stopSelf()调用之后,return语句是否强制不执行代码?
如果函数的返回类型不是
void
,则仍然需要return
(否则代码将无法编译)。return
语句最有可能在stopSelf()
导致异步停止Service
时执行。据我所知,调用stopSelf()可以在抛出异常的情况下停止代码执行,否则我找不到这样做的逻辑。
通过调用
stopSelf()
,您可以通知系统Service
已完成其“作业”,因此系统可以释放Service
所占用的资源。这非常类似于当用户按下后退按钮时调用的Activity
的onBackPressed()
的执行-系统完成Activity
释放资源。