Гарантирует ли вызов stopSelf () где-нибудь в Service (или IntentService) остановку службы?
Да, это так.
И является ли оператор return обязательным, чтобы не выполнять код после вызова stopSelf ()?
return
по-прежнему необходим, если функция имеет тип возврата, отличный от void
(иначе ваш код не будет компилироваться). Оператор return
, скорее всего, будет выполнен, поскольку stopSelf()
приведет к асинхронной остановке Service
.
Как я знаю, вызов stopSelf () может остановить выполнение кода в случае, если он вызывает исключение, иначе я не могу найти логику для этого.
Вызывая stopSelf()
, вы уведомляете систему, что Service
выполнено с ее «заданием», чтобы система могла высвободить ресурсы, которые удерживает Service
. Это очень похоже на выполнение Activity
onBackPressed()
, которое вызывается, когда пользователь нажимает кнопку возврата - система завершает Activity
освобождение ресурсов.