Гарантирует ли stopSelf () остановку службы (и КАК)?если да, то требуется ли возврат (в случае, если stopSelf вызывается изнутри)? - PullRequest
1 голос
/ 26 марта 2019

Мой вопрос касается Service и IntentService.Вопросы заключаются в следующем:

Гарантирует ли вызов stopSelf() где-нибудь в Service (или IntentService), что служба может быть остановлена?

И (в случае, если stopSelf () вызывается из inСлужба) делает оператор возврата обязательным, чтобы не выполнять код после stopSelf() вызова?

Как я знаю, вызов stopSelf() может остановить выполнение кода в случае, если он вызывает исключение, иначе я не могу найтилогика для этого.

1 Ответ

1 голос
/ 27 марта 2019

Гарантирует ли вызов stopSelf () где-нибудь в Service (или IntentService) остановку службы?

Да, это так.

И является ли оператор return обязательным, чтобы не выполнять код после вызова stopSelf ()?

return по-прежнему необходим, если функция имеет тип возврата, отличный от void (иначе ваш код не будет компилироваться). Оператор return, скорее всего, будет выполнен, поскольку stopSelf() приведет к асинхронной остановке Service.

Как я знаю, вызов stopSelf () может остановить выполнение кода в случае, если он вызывает исключение, иначе я не могу найти логику для этого.

Вызывая stopSelf(), вы уведомляете систему, что Service выполнено с ее «заданием», чтобы система могла высвободить ресурсы, которые удерживает Service. Это очень похоже на выполнение Activity onBackPressed(), которое вызывается, когда пользователь нажимает кнопку возврата - система завершает Activity освобождение ресурсов.

...