Что было бы лучшим способом проверить, работает ли Android-сервис? Я знаю API ActivityManager
, но похоже, что использование API не рекомендуется для сценариев, подобных моим (source). Я также знаю о возможности использования глобальных/постоянных переменных для поддержания состояния службы.Android: проверьте, работает ли служба. bindService
Я пытался использовать bindService
с флагами в 0
, но у меня те же проблемы, что и лицо на источника связи (единственное исключение было, я пытался в bindService
с местной службой).
Следующий вызов
getApplicationContext().bindService(new Intent(getApplicationContext(),
MyService.class), mServiceConnection, 0);
всегда возвращает истину, но не подключиться. Это ожидаемое поведение? Мне кажется, bindService
должен возвращать false, если служба еще не запущена (это не так, я это проверил) или если флаг BIND_AUTO_CREATE
не установлен (опять же, это не так).
Скажем, я бы например, для печати сообщения «Служба запущена» или «Служба не запущена». Вот почему я должен получить информацию, если служба работает или нет. Я не могу сделать это с вызовом startService. – Igor
Но почему вы должны печатать это сообщение? Есть только 2 вещи, которые вы можете сделать, если служба не работает. Либо начните, либо нет. – Falmarri
Потому что я хотел бы сообщить пользователю, работает ли служба или нет. Пользователь должен запустить и остановить службу вручную (с помощью нажатия кнопки).Когда пользователь закрывает действие (кнопка BACK), служба должна оставаться в рабочем состоянии. И активность должна знать, когда пользователь запустит ее в следующий раз, когда служба уже запущена. – Igor