Есть ли способ идентифицировать в onStartCommand службы, если она создана системой для STICKY? - PullRequest
0 голосов
/ 12 апреля 2019

У меня запущена служба переднего плана, и это служба STICKY_REDELIVER_INTENT. Проблема в том, что каждый раз, когда он запускается снова из-за плохого поведения службы, уведомление будет отображаться со звуком. Это происходит много раз в день, и это будет определенно раздражать пользователя. Можно ли ограничить звук уведомления только при первом его отображении?

1 Ответ

0 голосов
/ 12 апреля 2019

Вы можете проверить, работает эта служба или нет. если не работает, вы можете запустить службу.

Для проверки запущена служба или нет:

if (isMyServiceRunning(MainActivity.this, xyzService.class)) { // Service class name
    // Service running
} else {
    // Service Stop
}



public static boolean isMyServiceRunning(Activity activity, Class<?> serviceClass) {
        ActivityManager manager = (ActivityManager) activity.getSystemService(Context.ACTIVITY_SERVICE);
        for (ActivityManager.RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
            if (serviceClass.getName().equals(service.service.getClassName())) {
                return true;
            }
        }
        return false;
    }
...