Будет ли onCreate всегда вызываться перед onBind? (Для службы, которая еще не запущена) - PullRequest
0 голосов
/ 11 мая 2018

Если я попытаюсь выполнить привязку к Сервису, используя Context.bindService(), и эта Служба еще не запущена / не запущена, буду ли я гарантированно, что onCreate этой Услуги определенно будет вызываться до onBind? Я не смог найти никаких документов по жизненному циклу Сервиса, по крайней мере, в отношении этого вопроса, какой из этих двух стоит первым.

Если нет, то в каких случаях onCreate будет вызываться раньше onBind? В проведенных мною тестах onCreate всегда вызывается раньше onBind. Но я должен быть уверен в этом, потому что у меня есть логика, которая может потерпеть неудачу, если этот порядок изменится

Если это поможет, я привязываюсь к этой службе, чтобы получить Messenger, на который я буду отправлять сообщения. На практике мой вопрос «могу ли я быть уверен, что onCreate выполнится до того, как служба обработает какое-либо из моих сообщений?»

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Да, обратный вызов onCreate() всегда будет вызываться первым. Из документов:

Клиенты также могут использовать Context.bindService () для получения постоянного подключения к услуге. Это также создает службу, если она еще не запущена (при этом вызывается onCreate ()), но не вызывает onStartCommand ().

0 голосов
/ 11 мая 2018

Сначала будет вызван onCreate. Он не будет вызываться, если Service уже запущен.

enter image description here

Документы с обзором услуг

Обзор ограниченной службы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...