У меня есть служба, которая должна поддерживать постоянное соединение с контроллером домашней автоматизации (HAC). В настройках Приложения я предоставлю Пользователю возможность оставаться ** подключенным к HAC или отбросить соединение с HAC, когда Приложение не используется. Я намереваюсь использовать startService (), посмотрев на предпочтения, чтобы узнать, нужно ли вызывать stopSelf () из Сервиса.
Это очень рациональный и разумный подход - пусть пользователь контролирует, как используется его устройство. Престижность!
Нужно ли привязываться к сервису из каждой активности в приложении?
Нет необходимости привязывать к сервису какие-либо действия в приложении, если вы используете startService()
для его запуска.
Я надеялся использовать обратный вызов onBind (), чтобы проверить, имеет ли Служба действительное соединение с HAC.
В частности, для облегченных, доступных только для чтения, проблем, не связанных с GC, таких как состояние соединения, я бы просто вставил их в статический элемент данных. Теперь, если вам нужен более сложный API, чем этот, вам понадобится связывание, но связывание - это боль в различных частях тела, когда речь идет об изменениях конфигурации (например, поворот экрана).
Если я использую startService (), а затем bindService (); unBindService () затем разрешит остановку службы, если нет других связанных объектов?
Нет, startService()
будет держать его независимо от unbindService()
.
Кроме того, если я запускаю службу с помощью bindService (), а затем впоследствии вызываю startService (); что происходит?
Ммм ... Вы можете быть более конкретным? Я имею в виду, что я чувствую себя достаточно комфортно, говоря, что ваша последовательность событий не вызовет разрыва в пространственно-временном континууме и не заставит меня самопроизвольно отрастить волосы. : -)