Ошибка getRunningServices is deprecated API 26

712
03 августа 2017, 23:43

При написани данного кода:

ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
List<ActivityManager.RunningServiceInfo> rs = am.getRunningServices(Integer.MAX_VALUE);

getRunningServices зачеркнут, как прочитал начиная с ещё не вышедшего API Level 26(8.0 Android O) данный метод будет не доступен, как переделать так, чтобы в будущем работало и на API Level 26? Цель - это проверка запущен ли Service, при запуске приложения.

Answer 1

https://developer.android.com/reference/android/app/ActivityManager.html#getRunningServices

As of O, this method is no longer available to third party applications. For backwards compatibility, it will still return the caller's own services.

Здесь сказано, что метод не будет доступен для сторонних приложений. А также сказано:

Note: this method is only intended for debugging or implementing service management type user interfaces.

То есть, рекомендуется использовать при отладке.

Простой совет дан здесь - https://stackoverflow.com/a/608600/6932590

Заведите в классе сервиса публичную статическую булеву переменную isRunning и меняйте ее при запуске сервиса (onCreate/onStartCommand) и при его остановке (onDestroy).

READ ALSO
LibGDX + JavaFX

LibGDX + JavaFX

Есть у меня идея фикс, сделать редактор(ы) используя базовый интерфейс JavaЯ пробовал 2 варианта этой реализации, но пока не преуспел

358
Java Apache POI (стили текста/свойства ячеек)

Java Apache POI (стили текста/свойства ячеек)

Есть небольшой код на экспорт данных с Jtable в excel

468
Собрать HashMap в JSP

Собрать HashMap в JSP

Дано: Создается система прохождения различных тестов , для обработки данных было выбрано решение собирать в jsp HashMap состоящий из ключа (ID ответа)...

440
JAVA Декомпиляция

JAVA Декомпиляция

Допустим есть программа написанная на java Затем пропущена через врапер, получен exe файлНа сколько просто декомпилировать такую программу,...

266