Как лучше всего проверить, запущена ли служба Android? Мне известен ActivityManager
API, но похоже, что использование API не рекомендуется для сценариев, подобных моему (источник). Я также знаю о возможности использования глобальных / постоянных переменных для поддержания состояния службы.
Я попытался использовать bindService
с флагами, установленными на 0
, но у меня возникли те же проблемы, что и у человека по ссылке source (единственное исключение было, я пробовал bindService
с локальной службой).
Следующий звонок
getApplicationContext().bindService(new Intent(getApplicationContext(),
MyService.class), mServiceConnection, 0);
всегда возвращает истину, но не подключается. Это ожидаемое поведение? Мне кажется, что bindService
должен возвращать false, если служба еще не запущена (это не так, я это проверил) или если флаг BIND_AUTO_CREATE
не установлен (опять же, это не так).