Гарантирует ли stopSelf() остановку службы (и КАК)? если да, требуется ли возврат (в случае, если stopSelf вызывается внутренне)?

#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 освобождение ресурсов.