Привязка к сервису из активности андроида - PullRequest
2 голосов
/ 13 марта 2012

У меня есть активность, которая запускает службу. Когда действие закрыто, я хочу, чтобы служба продолжала работать в фоновом режиме. У меня есть пара вопросов здесь.

Будет ли закрытие экрана активности фактически прекращать активность? Или мне нужно принудительно остановить его, чтобы он остановился?

Если закрытие экрана приводит к его остановке, тогда я предполагаю, что мне нужно использовать startService, чтобы запустить его. Это верно? Если это так, есть ли способ получить дескриптор работающей службы в следующий раз, когда начнется действие? Если это не так, то я могу просто связаться с сервисом.

1 Ответ

3 голосов
/ 13 марта 2012

Когда ваш Activity больше не виден на экране, он останавливается. Остановка Activity, привязанного к Service, не останавливает Service. Тем не менее, вам нужно убедиться, что вы отсоединяетесь от Service, когда ваш Activity вызывает onDestroy(), чтобы убедиться, что у вас нет никаких висячих обработчиков и тому подобное.

Вы можете привязаться к бегу Service так же, как в первый раз. Отправка Intent для запуска Service, который уже запущен, не создает второго его экземпляра, так что это безопасно.

Хороший способ начать Service, как вы описываете, - запустить его с помощью аргумента Context.BIND_AUTO_CREATE для вашего вызова bindService().

Подробную информацию обо всем этом можно найти в Android-документах о связанных службах . Поначалу это может немного запутать. Точно следуйте коду учебного пособия, так как кажется, что ваши проблемы хорошо отображаются в предоставленном ими примере.

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