ActivityManager # getRunningServices возвращает сервис, который остановлен вручную - PullRequest
4 голосов
/ 03 января 2012
activityManager.getRunningServices(Integer.MAX_VALUE);

Этот метод возвращает список, включающий службу, остановленную вручную.

Настройки> Приложения> Запущенные сервисы

1 Ответ

2 голосов
/ 03 января 2012

Все подходы, использующие события onDestroy или onSometing, или Binder, или статические переменные, не будут работать надежно, потому что как разработчик вы никогда не знаете, когда Android решает убить ваш процесс или какой из упомянутых обратных вызовов вызван или нет. Обратите внимание на столбец «killable» в таблице событий жизненного цикла в документации Android.

// используйте этот код, чтобы проверить, работает ваш сервис или нет

private boolean isMyServiceRunning() {
    ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
    for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
        if ("com.example.MyService".equals(service.service.getClassName())) {
            return true;
        }
    }
    return false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...