Проверка службы Android Foreground, если она создана

У меня есть служба в моем приложении, это медицинское приложение, и эта служба должна работать все время, пока приложение установлено, не будучи убитым. Итак, я пробовал несколько подходов, пробовал использовать обычную службу, возвращающую START_STICKY, но это не совсем воссоздает службу, как это должно быть. Тогда я решил попробовать это с сервисом переднего плана. Я создаю его, чтобы выиграть службу onStartCommand вот так

    startForeground(FOREGROUND_ID, buildForegroundNotification());
    return START_STICKY;
}

private Notification buildForegroundNotification() {
    NotificationCompat.Builder b = new NotificationCompat.Builder(this);
    b.setOngoing(true);
    b.setContentTitle("My App");
    b.setContentText("Therapy is running");
    b.setSmallIcon(R.drawable.ic_launcher);
    return (b.build());
}

так что у меня есть два вопроса: - Может ли Android убить службу переднего плана? - Как мне проверить, создано ли уже уведомление, чтобы оно не создавалось каждый раз при запуске службы (служба воссоздается несколько раз, когда Activity также запущена, потому что она активно взаимодействует с ней)


person Sartheris Stormhammer    schedule 23.09.2014    source источник


Ответы (1)


По первому вопросу см. здесь.

Второй вопрос: я полагаю, вы используете myNotificationManager.notify(int id, Notification notification). Поле ID используется для определения типов уведомлений, которые вы хотите отображать, поэтому установка одного и того же идентификатора для одного и того же типа уведомления заменит старое уведомление новым (если старое все еще отображается) или просто отобразит новый (см. документы NotificationManager).

person fiipi    schedule 23.09.2014