#android #android-service #android-intentservice
#Android #android-service #android-intentservice
Вопрос:
Мой вопрос касается Service
и IntentService
. Вопросы заключаются в следующем.
Является ли вызов stopSelf()
где-либо в Service
(или IntentService
) гарантирует ли остановка службы?
И (в случае, если stopSelf() вызывается из службы) является ли оператор return обязательным для того, чтобы не выполнять код после stopSelf()
вызова?
Насколько я знаю, вызов stopSelf()
может остановить выполнение кода в случае, если он выдает исключение, иначе я не могу найти логику для этого.
Комментарии:
1.
return
откуда?2. возврат из фактического метода (в случае, если stopSelf() вызывается внутренне) / Я исправлю
Ответ №1:
Гарантирует ли вызов stopSelf() где-либо в Service (или IntentService) остановку службы?
Да, это так.
И является ли оператор return обязательным для того, чтобы не выполнять код после вызова stopSelf()?
return
все еще необходим, если функция имеет возвращаемый тип, отличный от void
(в противном случае ваш код не будет компилироваться). return
Оператор, скорее всего, будет выполнен, поскольку stopSelf()
приводит к остановке Service
асинхронно.
Насколько я знаю, вызов stopSelf () может остановить выполнение кода в случае, если он выдает исключение, иначе я не могу найти логику для этого.
Вызывая stopSelf, stopSelf()
вы уведомляете систему о том, что Service
ее «задание» выполнено, чтобы система могла освободить удерживаемые Service
ресурсы. Это очень похоже на выполнение Activity
‘s onBackPressed()
, которое вызывается, когда пользователь нажимает кнопку «Назад» — система заканчивает Activity
освобождение ресурсов.