Ich entwickle eine App, die ständig aktiv sein muss. Sie wird auf einem Gerät verwendet, das ausschließlich für die App verwendet wird.Abbrechen einer Benachrichtigung, wenn die App aus dem Fenster der letzten Anwendungen entfernt wird
Ich habe gelesen, dass, um die App nicht durch das Betriebssystem getötet werden muss ich eine laufende Benachrichtigung einstellen muss, ich auch eine teilweise wakelock angewendet.
Das Problem ist die Meldung nicht weggeht, wenn die App getötet wird, nenne ich dies auf der onCreate
Methode meiner Tätigkeit
notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
Intent intent = new Intent(getApplicationContext(), PlayerActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(), 8000, intent, PendingIntent.FLAG_CANCEL_CURRENT);
Notification.Builder builder = new Notification.Builder(getApplicationContext())
.setContentTitle("Title")
.setContentText("Description")
.setContentIntent(pendingIntent)
.setSmallIcon(R.mipmap.ic_playlist_play_white_36dp)
.setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.app_icon))
.setOngoing(true);
notificationManager.notify(8000, builder.build());
auf der onDestroy
Methode nenne ich
notificationManager.cancelAll();
super.onDestroy();
Die Benachrichtigung wird nie entfernt, ich muss die App deinstallieren, damit sie gelöscht wird. Gibt es eine Möglichkeit, sie zu entfernen, wenn die App nicht geladen ist?
Edit: Ich API 19
Leider onDestroy Verfahren ist kein sicherer Ort, dies zu tun und Android kann diese Methode in einigen nicht nennen Situationen. Möglicherweise müssen Sie einen Dienst für den Umgang mit dieser Situation erstellen, wenn es notwendig ist! –