У меня есть некоторая передняя служба IntentService, которую можно запустить или остановить. Мне нужно отразить его прогресс (текущее состояние, которое довольно сложно) в действии, если оно видно.
Я не нашел надежного и хорошего способа узнать, работает ли мой IntentService и готов ли он быть привязанным к моей деятельности.
Если я делаю bindService, он всегда возвращает true. В случае, если IntentService не запущен, onServiceConnected (а также любые другие обратные вызовы) никогда не вызывается, и моя активность всегда остается в состоянии подготовки.
Единственным рабочим решением, которое я нашел, была статическая переменная в моем классе IntentService, которая указывает, что служба запущена. Но я считаю, что использование такого подхода является плохой практикой, и многие люди предупреждают, что в некоторых случаях он может не работать или быть непредсказуемым.
ВОПРОС. Как разработчики Android ожидают обработки сбоя вызова bindService?
И частный случай: что делать в случае, если мы пытаемся привязаться к службе, которая сейчас не запущена или находится в каком-то промежуточном состоянии (например, завершение работы и т. д.).