Как ждать обслуживания на начало деятельности
-
28-09-2019 - |
Вопрос
Я делаю приложение, которое имеет деятельность, которая связывается с одним сервисом и используется для запуска, остановки или изменения настроек этого сервиса. Я использовал подход Singleton из это наконечник.
Моя проблема в том, что занятое ожидание не работает для меня, и я не могу прикрепить слушателя на службу, потому что активность заблокирована. Я хочу, чтобы сервис начать или получить текущий экземпляр при наступлении приложения, поэтому я положил занятую в OnCreate. Я предполагаю, что я делаю это очень неправильно, так как мне сделать это соответственно?
Кроме того, если для этого есть лучший подход, пожалуйста, опубликуйте любые ссылки или руководства, потому что я Getn Confused на сайте разработчика Android: P
Спасибо!
Решение
Я использовал синглтон подход с этого совета.
Не делай этого. Использовать bindService()
И вместо этого локальный образный шаблон, и вы будете уведомлены, когда служба готова. Вы также получаете доступ к API, опубликованный сервисом и можете начать использовать его, как только вы связаны.
Другие советы
Проблема является одним из процедурных по сравнению с программированием, ориентированным на события, построен на потом.
Oncreate - это событие. Уведомление о сервисном соединении также является событием. Вы не будете доставлены уведомление об обслуживании (даже если это произошло), пока вы не вернетесь с OnCreate.
Можете ли вы разделить свою активность запуска на две части, первая сделана в OnCreate, а вторая в ответ на сервисное соединение?