Übersicht zu Benachrichtigungen

Eine Benachrichtigung ist eine Meldung, die Android außerhalb der Benutzeroberfläche Ihrer App anzeigt. Darin zu finden sind Erinnerungen, Nachrichten von anderen Personen oder andere aktuelle Informationen aus Ihrer App. Nutzer können auf die Benachrichtigung tippen, um Ihre App zu öffnen, oder direkt über die Benachrichtigung eine Aktion durchführen.

Auf dieser Seite finden Sie eine Übersicht dazu, wo Benachrichtigungen angezeigt werden und welche Funktionen verfügbar sind. Wenn du Benachrichtigungen erstellen möchtest, lies stattdessen Benachrichtigung erstellen.

Weitere Informationen zum Design und zu Interaktionsmustern von Benachrichtigungen finden Sie im Leitfaden zur Gestaltung von Benachrichtigungen.

Darstellung auf einem Gerät

Benachrichtigungen werden Nutzern automatisch an verschiedenen Stellen und in unterschiedlichen Formaten angezeigt. Eine Benachrichtigung wird als Symbol in der Statusleiste, als etwas detaillierterer Eintrag in der Benachrichtigungsleiste und als Kennzeichen auf dem App-Symbol angezeigt. Benachrichtigungen werden auch auf gekoppelten Wearables angezeigt.

Status- und Benachrichtigungsleiste

Wenn eine Benachrichtigung gesendet wird, erscheint sie zuerst als Symbol in der Statusleiste.

Abbildung 1. Benachrichtigungssymbole werden links in der Statusleiste angezeigt.

Nutzer können auf der Statusleiste nach unten wischen, um die Benachrichtigungsleiste zu öffnen. Dort haben sie die Möglichkeit, sich weitere Details zur Benachrichtigung anzusehen und Aktionen durchzuführen.

Abbildung 2.  Benachrichtigungen in der Benachrichtigungsleiste.

Nutzer können in den Benachrichtigungen auf der Leiste nach unten wischen, um sich eine maximierte Ansicht anzusehen, in der zusätzlicher Inhalt und eventuell Aktionsschaltflächen verfügbar sind. Ab Android 13 enthält diese erweiterte Ansicht eine Schaltfläche, mit der Nutzer eine App beenden können, für die Dienste im Vordergrund ausgeführt werden.

Eine Benachrichtigung bleibt in der Benachrichtigungsleiste sichtbar, bis sie von der App oder dem Nutzer geschlossen wird.

Vorabbenachrichtigung

Ab Android 5.0 können Benachrichtigungen kurz in einem unverankerten Fenster angezeigt werden, das als Vorabbenachrichtigung bezeichnet wird. Sie werden normalerweise für wichtige Benachrichtigungen angezeigt, über die der Nutzer sofort informiert werden sollte, und nur dann, wenn das Gerät entsperrt ist.

Abbildung 3 Vor der App im Vordergrund wird eine Vorabbenachrichtigung angezeigt.

Die Vorabbenachrichtigung wird angezeigt, sobald Ihre App die Benachrichtigung sendet. Sie verschwindet nach einigen Sekunden wieder, bleibt aber wie gewohnt in der Benachrichtigungsleiste sichtbar.

Folgende Bedingungen können Vorabbenachrichtigungen auslösen:

  • Der Nutzer ist im Vollbildmodus aktiv, z. B. wenn die App fullScreenIntent verwendet.

  • Die Benachrichtigung hat eine hohe Priorität und löst Klingeltöne oder Vibrationen auf Geräten mit Android 7.1 (API-Ebene 25) und niedriger aus.

  • Der Benachrichtigungskanal hat auf Geräten mit Android 8.0 (API-Ebene 26) und höher eine große Wichtigkeit.

Display sperren

Ab Android 5.0 können Benachrichtigungen auf dem Sperrbildschirm angezeigt werden.

Sie können programmatisch festlegen, ob Benachrichtigungen, die von Ihrer App gepostet werden, auf einem sicheren Sperrbildschirm angezeigt werden sollen, und falls ja, welche Detailstufe sichtbar sein soll.

Die Detailstufe, mit der Benachrichtigungen auf dem Sperrbildschirm angezeigt werden, lässt sich über die Systemeinstellungen konfigurieren. Dort ist auch die Option verfügbar, mit der alle Benachrichtigungen auf dem Sperrbildschirm deaktiviert werden können. Ab Android 8.0 können Nutzer Benachrichtigungen auf dem Sperrbildschirm für jeden Benachrichtigungskanal deaktivieren oder aktivieren.

Abbildung 4 Benachrichtigungen auf dem Sperrbildschirm, in denen sensible Inhalte ausgeblendet sind

Weitere Informationen finden Sie unter Sichtbarkeit des Sperrbildschirms festlegen.

Kennzeichen auf App-Symbolen

In unterstützten Launchern auf Geräten mit Android 8.0 (API-Level 26) und höher kennzeichnen App-Symbole neue Benachrichtigungen durch ein farbiges Badge, einen sogenannten Benachrichtigungspunkt.

Nutzer können ein App-Symbol gedrückt halten, um sich die Benachrichtigungen für diese App anzeigen zu lassen. Dann haben sie die Möglichkeit, sie zu schließen oder in diesem Menü eine Aktion dafür durchzuführen, ähnlich wie auf der Benachrichtigungsleiste.

Abbildung 5. Benachrichtigungskennzeichen und das Menü, das nach langem Drücken erscheint

Weitere Informationen zur Funktionsweise von Kennzeichen findest du unter Benachrichtigungskennzeichen ändern.

Wear OS-Geräte

Wenn der Nutzer ein Wear OS-Gerät hat, werden alle Benachrichtigungen automatisch darauf angezeigt, einschließlich maximierbarer Details und Aktionsschaltflächen.

Du kannst die Darstellung deiner Benachrichtigungen auf Wearables anpassen und verschiedene Aktionen anbieten, z. B. vorgeschlagene Antworten und Antworten per Spracheingabe. Weitere Informationen dazu, wie du deinen Benachrichtigungen Funktionen hinzufügst, die auf bestimmte Wearables abgestimmt sind, findest du hier.

Abbildung 6 Benachrichtigungen werden automatisch auf einem gekoppelten Wear OS-Gerät angezeigt.

Benachrichtigungsaufbau

Das Design einer Benachrichtigung wird von Systemvorlagen vorgegeben. Deine App definiert einfach den Inhalt der einzelnen Vorlagenabschnitte. Einige Details der Benachrichtigung werden nur in der erweiterten Ansicht angezeigt.

Abbildung 7.  Eine Benachrichtigung mit grundlegenden Details.

Die häufigsten Bestandteile einer Benachrichtigung sind in Abbildung 7 so dargestellt:

  1. Kleines Symbol: erforderlich; mit setSmallIcon() festlegen
  2. App-Name: Wird vom System bereitgestellt.
  3. Zeitstempel: Wird vom System bereitgestellt. Sie können ihn mit setWhen() überschreiben oder mit setShowWhen(false) ausblenden.
  4. Großes Symbol: Optional; wird normalerweise nur für Kontaktfotos verwendet. Verwenden Sie es nicht für Ihr App-Symbol. Festgelegt mit setLargeIcon().
  5. Titel: Optional; mit setContentTitle() festlegen.
  6. Text: Optional; wird mit setContentText() festgelegt.

Wir empfehlen dringend, Systemvorlagen zu verwenden, um die Designkompatibilität auf allen Geräten zu gewährleisten. Bei Bedarf können Sie ein benutzerdefiniertes Benachrichtigungslayout erstellen.

Weitere Informationen zum Erstellen einer Benachrichtigung mit diesen und weiteren Funktionen findest du unter Benachrichtigung erstellen.

Benachrichtigungsaktionen

Obwohl dies nicht erforderlich ist, empfiehlt es sich, dass über jede Benachrichtigung eine entsprechende App-Aktivität geöffnet wird, wenn sie angetippt wird. Zusätzlich zu dieser Standardbenachrichtigungsaktion können Sie Aktionsschaltflächen hinzufügen, um dem Nutzer die Möglichkeit zu geben, eine auf die App bezogene Aufgabe über die Benachrichtigung auszuführen – oft ohne dabei eine Aktivität zu öffnen (siehe Abbildung 8).

Abbildung 8. Eine Benachrichtigung mit Aktionsschaltflächen.

Ab Android 7.0 (API-Ebene 24) können Sie eine Aktion hinzufügen, über die Nutzer direkt über die Benachrichtigung auf Nachrichten antworten oder anderen Text eingeben können.

Ab Android 10 (API-Level 29) kann die Plattform automatisch Aktionsschaltflächen mit vorgeschlagenen intentbasierten Aktionen generieren.

Weitere Informationen zum Hinzufügen von Aktionsschaltflächen findest du unter Benachrichtigung erstellen.

Entsperretes Gerät erforderlich

Nutzer sehen möglicherweise Benachrichtigungsaktionen auf dem Sperrbildschirm des Geräts. Wenn eine Benachrichtigungsaktion dazu führt, dass eine App eine Aktivität startet oder eine direkte Antwort sendet, müssen Nutzer das Gerät entsperren, bevor die App diese Benachrichtigungsaktion ausführen kann.

Unter Android 12 (API-Level 31) und höher können Sie eine Benachrichtigungsaktion so konfigurieren, dass das Gerät entsperrt sein muss, damit Ihre App diese Aktion ausführen kann, unabhängig davon, welcher Workflow durch die Aktion gestartet wird. Mit dieser Option wird die Sicherheit von Benachrichtigungen auf gesperrten Geräten erhöht.

Wenn ein Gerät entsperrt sein muss, bevor Ihre App eine bestimmte Benachrichtigungsaktion aufruft, geben Sie beim Erstellen der Benachrichtigungsaktion true an setAuthenticationRequired() weiter, wie im folgenden Code-Snippet gezeigt:

Kotlin

val moreSecureNotification = Notification.Action.Builder(...)

    // This notification always requests authentication when invoked
    // from a lock screen.
    .setAuthenticationRequired(true)
    .build()

Java

Notification moreSecureNotification = new Notification.Action.Builder(...)

    // This notification always requests authentication when invoked
    // from a lock screen.
    .setAuthenticationRequired(true)
    .build();

Maximierbare Benachrichtigung

Der Textinhalt einer Benachrichtigung wird standardmäßig auf eine Zeile gekürzt. Wenn du möchtest, dass mehr Text in deiner Benachrichtigung angezeigt wird, kannst du einen größeren, maximierbaren Textbereich aktivieren, indem du eine zusätzliche Vorlage anwendest (siehe Abbildung 9).

Abbildung 9: Eine maximierbare Benachrichtigung für großen Text.

Sie haben auch die Möglichkeit, eine maximierbare Benachrichtigung mit einem Bild, einem Posteingangsstil, einem Chat oder Steuerelementen für die Medienwiedergabe zu erstellen. Weitere Informationen finden Sie unter Maximierbare Benachrichtigung erstellen.

Benachrichtigungsaktualisierungen und -gruppen

Damit Ihre Nutzer nicht zu viele oder doppelte Benachrichtigungen erhalten, wenn weitere Aktualisierungen verfügbar werden, haben Sie die Möglichkeit, vorhandene Benachrichtigungen zu aktualisieren, anstatt sie noch einmal zu senden, oder Benachrichtigungen im Posteingangsstil für neue Konversationen zu verwenden.

Wenn jedoch mehrere Benachrichtigungen gesendet werden müssen, ist es empfehlenswert, diese separaten Benachrichtigungen in einer Gruppe zusammenzufassen (verfügbar ab Android 7.0).

Mit einer Benachrichtigungsgruppe können Sie mehrere Benachrichtigungen in der Benachrichtigungsleiste zu einem Element zusammenführen – mit einer Zusammenfassung. Die Benachrichtigungsgruppe und jede darin enthaltene Benachrichtigung lässt sich schrittweise maximieren, um weitere Details einzublenden, wie in Abbildung 10 dargestellt.

Abbildung 10. Eine minimierte und eine maximierte Benachrichtigungsgruppe.

Informationen zum Hinzufügen von Benachrichtigungen zu einer Gruppe findest du unter Benachrichtigungsgruppe erstellen.

Benachrichtigungskanäle

Ab Android 8.0 (API-Level 26) müssen alle Benachrichtigungen einem Kanal zugewiesen sein, damit sie nicht angezeigt werden. So können Nutzer bestimmte Benachrichtigungskanäle für Ihre App deaktivieren, anstatt alle Benachrichtigungen zu deaktivieren. Nutzer können die visuellen und akustischen Optionen für jeden Kanal über die Android-Systemeinstellungen steuern, wie in Abbildung 11 gezeigt. Durch langes Drücken auf eine Benachrichtigung kann außerdem das Verhalten in zugehörigen Kanälen geändert werden.

Auf Geräten mit Android 7.1 (API-Ebene 25) und niedriger können Nutzer Benachrichtigungen nur je App verwalten. Unter Android 7.1 und niedriger hat jede App nur einen Kanal.

Abbildung 11: Benachrichtigungseinstellungen für die Uhr App und einen ihrer Kanäle.

Eine App kann separate Kanäle für die unterschiedlichen Benachrichtigungstypen haben, die die App sendet. Sie kann auch Benachrichtigungskanäle erstellen, wenn der Nutzer eine entsprechende Auswahl trifft. So können beispielsweise separate Benachrichtigungskanäle für jede Konversationsgruppe eingerichtet werden, die vom Nutzer in einer App zum Nachrichtenversand erstellt wird.

Im Kanal wird auch die Wichtigkeit deiner Benachrichtigungen unter Android 8.0 und höher festgelegt. Auf diese Weise zeigen alle Benachrichtigungen, die über denselben Benachrichtigungskanal gesendet werden, das gleiche Verhalten. Dies wird im folgenden Abschnitt beschrieben.

Weitere Informationen finden Sie unter Benachrichtigungskanäle erstellen und verwalten.

Wichtigkeit von Benachrichtigungen

Android bestimmt anhand der Wichtigkeit einer Benachrichtigung, in welchem Ausmaß der Nutzer unterbrochen werden soll (visuell und akustisch). Je höher die Wichtigkeit einer Benachrichtigung, desto deutlicher fällt die Unterbrechung aus.

Unter Android 7.1 (API-Ebene 25) und niedriger wird die Wichtigkeit einer Benachrichtigung durch die priority der Benachrichtigung bestimmt.

Unter Android 8.0 (API-Ebene 26) und höher wird die Wichtigkeit einer Benachrichtigung durch die importance des Kanals bestimmt, über den die Benachrichtigung gesendet wird. Nutzer können die Wichtigkeit eines Benachrichtigungskanals in den Systemeinstellungen ändern, wie in Abbildung 12 dargestellt.

Abbildung 12. Nutzer können die Wichtigkeit einzelner Kanäle unter Android 8.0 und höher ändern.

Die möglichen Wichtigkeitsstufen und die zugehörigen Benachrichtigungsverhalten sind:

  • Dringend: akustisches Signal ertönt, Vorabbenachrichtigung wird angezeigt

  • Hoch: Ein akustisches Signal ertönt.

  • Mittel: kein akustisches Signal

  • Niedrig: kein akustisches Signal ertönt und erscheint nicht in der Statusleiste.

Alle Benachrichtigungen werden unabhängig von der Wichtigkeit an nicht störenden Stellen auf der Systembenutzeroberfläche angezeigt, z. B. auf der Benachrichtigungsleiste und als Kennzeichen auf dem Launcher-Symbol. Sie können jedoch das Aussehen des Benachrichtigungssymbols ändern.

Weitere Informationen dazu, wie du die Wichtigkeit festlegst, findest du hier.

Modus "Bitte nicht stören"

Ab Android 5.0 (API-Ebene 21) können Nutzer den Modus Bitte nicht stören aktivieren, der akustische Signale und Vibrationen bei allen Benachrichtigungen unterdrückt. Benachrichtigungen erscheinen weiterhin normal auf der Systembenutzeroberfläche, sofern der Nutzer nichts anderes einstellt.

Im Modus „Bitte nicht stören“ stehen drei Stufen zur Verfügung:

  • Lautlos: Akustische Signale und Vibrationen werden blockiert, einschließlich Wecker, Musik, Videos und Spielen.
  • Nur Wecker: Akustische Signale und Vibrationen werden blockiert, mit Ausnahme von Weckern.
  • Nur wichtige Unterbrechungen: Nutzer können einstellen, durch welche systemweiten Kategorien sie unterbrochen werden möchten (z. B. nur Wecker, Erinnerungen, Termine, Anrufe oder Nachrichten). Bei Nachrichten und Anrufen haben sie außerdem die Möglichkeit, die Absender oder Anrufer festzulegen, die sie unterbrechen dürfen (Abbildung 13).

Abbildung 13. Nutzer haben die Möglichkeit, Benachrichtigungen anhand von systemweiten Kategorien (links) und auf Grundlage dessen zuzulassen, wer eine Nachricht gesendet hat oder wer anruft (rechts).

Unter Android 8.0 (API-Ebene 26) und höher können Nutzer außerdem Benachrichtigungen für App-spezifische Kategorien (auch als Kanäle bezeichnet) zulassen, indem sie die Funktion „Bitte nicht stören“ für die gewünschten Kanäle überschreiben. So kann eine Zahlungs-App beispielsweise Kanäle für Benachrichtigungen haben, die sich auf Abhebungen und Einzahlungen beziehen. Der Nutzer kann Abhebungsbenachrichtigungen, Einzahlungsbenachrichtigungen oder beides zulassen, wenn er sich im Modus „Nur wichtige Unterbrechungen“ befindet.

Auf Geräten mit Android 7.1 (API-Ebene 25) und niedriger können Nutzer Benachrichtigungen für gewünschte Apps, nicht jedoch auf Grundlage von Kanälen zulassen.

Damit du deine Benachrichtigungen für diese Nutzereinstellungen konfigurieren kannst, musst du eine systemweite Kategorie festlegen.

Benachrichtigungen für Vordergrunddienste

Eine Benachrichtigung ist erforderlich, wenn Ihre App einen Dienst im Vordergrund ausführt. Das ist ein Service, der bereits länger im Hintergrund ausgeführt wird und für den Nutzer erkennbar ist, beispielsweise ein Mediaplayer. Diese Benachrichtigung kann nicht wie andere Benachrichtigungen geschlossen werden. Damit die Benachrichtigung entfernt werden kann, muss der Dienst angehalten oder der Status „Vordergrund“ dafür deaktiviert werden.

Weitere Informationen finden Sie unter Dienste im Vordergrund. Wenn Sie einen Mediaplayer erstellen, lesen Sie auch den Artikel Medien im Hintergrund abspielen.

Postinglimits

Ab Android 8.1 (API-Level 27) können Apps nur einmal pro Sekunde einen Benachrichtigungston ausgeben. Wenn Ihre App in einer Sekunde mehrere Benachrichtigungen sendet, werden alle erwartungsgemäß zugestellt, es wird aber nur für die erste Benachrichtigung ein Ton ausgegeben.

Darüber hinaus wird eine Ratenbegrenzung angewendet, wenn eine Benachrichtigung aktualisiert wird. Wenn du zu einer einzelnen Benachrichtigung zu häufig (mehrere Male in weniger als einer Sekunde) Aktualisierungen sendest, werden einige Aktualisierungen möglicherweise vom System verworfen.

Benachrichtigungskompatibilität

Die Benutzeroberfläche des Android-Benachrichtigungssystems und die APIs für Benachrichtigungen entwickeln sich ständig weiter. Wenn Sie die neuesten Funktionen der Benachrichtigungs-API nutzen und gleichzeitig ältere Geräte unterstützen möchten, verwenden Sie die Benachrichtigungs-API der Support Library, NotificationCompat, und ihre Unterklassen sowie NotificationManagerCompat. Auf diese Weise musst du keinen bedingten Code zur Überprüfung der API-Ebenen schreiben, da diese APIs dies für dich übernehmen.

NotificationCompat wird im Zuge der Weiterentwicklung der Plattform aktualisiert und enthält die neuesten Methoden. Die Verfügbarkeit einer Methode in NotificationCompat garantiert jedoch nicht, dass die entsprechende Funktion auf älteren Geräten verfügbar ist. In einigen Fällen führt der Aufruf einer neu eingeführten API auf älteren Geräten zu einer Nulloperation.

Im Folgenden findest du eine Zusammenfassung der wichtigsten Änderungen am Verhalten von Android-Benachrichtigungen nach API-Ebene.

Android 5.0, API-Ebene 21

  • Sperrbildschirm und Vorabbenachrichtigungen wurden eingeführt.

  • Der Nutzer kann das Smartphone in den Modus „Bitte nicht stören“ versetzen und konfigurieren, durch welche Benachrichtigungen er unterbrochen werden möchte, wenn sich das Gerät im Modus „Nur wichtige Unterbrechungen“ befindet.

  • Es wurden Methoden hinzugefügt, über die festgelegt werden kann, ob eine Benachrichtigung auf dem Sperrbildschirm angezeigt wird (z. B. setVisibility()). Außerdem kann darüber die „öffentliche“ Version des Benachrichtigungstexts angegeben werden.

  • Die Methode setPriority() wurde hinzugefügt, die dem System mitteilt, wie deutlich die Benachrichtigung ausfallen soll. So wird die Benachrichtigung bei einer Einstellung auf „Hoch“ als Vorabbenachrichtigung angezeigt.

  • Unterstützung für Benachrichtigungsstacks wurde Android Wear-Geräten (jetzt Wear OS) hinzugefügt. Benachrichtigungen lassen sich mit setGroup() in einem Stack anordnen. Benachrichtigungsstapel, später als Gruppe oder Bundle bezeichnet, werden auf Tablets oder Smartphones erst ab Android 7.0 (API-Level 24) unterstützt.

Android 7.0, API-Ebene 24

  • Benachrichtigungsvorlagen wurden umgestaltet, um das Hero-Image und den Avatar hervorzuheben.

  • Es wurden drei Benachrichtigungsvorlagen hinzugefügt: eine für Messaging-Apps und die anderen beiden zum Anpassen von benutzerdefinierten Inhaltsansichten mit Maximierungsoption und anderen Systemanpassungen.

  • Unterstützung von Benachrichtigungsgruppen auf Mobilgeräten wie Smartphones und Tablets. Verwendet dieselbe API wie die in Android 5.0 (API-Ebene 21) eingeführten Benachrichtigungsstacks von Android Wear (jetzt Wear OS).

  • Nutzer können über die Funktion „Direkt in der Benachrichtigung antworten“ direkt in einer Benachrichtigung antworten. Sie können Text eingeben, der dann an die übergeordnete App der Benachrichtigung weitergeleitet wird.

Android 8.0 (API-Ebene 26)

  • Einzelne Benachrichtigungen werden einem bestimmten Kanal zugeordnet.

  • Damit können Nutzer Benachrichtigungen für einzelne Kanäle deaktivieren, anstatt alle Benachrichtigungen einer App zu deaktivieren.

  • Bei Apps mit aktiven Benachrichtigungen wird ein Benachrichtigungskennzeichen auf dem App-Symbol angezeigt, das sich auf dem Start- oder Launcher-Bildschirm befindet.

  • Damit können Nutzer die Schlummerfunktion für Benachrichtigungen in der Leiste aktivieren. Außerdem kann ein automatisches Zeitlimit für Benachrichtigungen festgelegt werden.

  • Hiermit können Sie die Hintergrundfarbe der Benachrichtigung festlegen.

  • Einige APIs zum Verhalten von Benachrichtigungen wurden von Notification zu NotificationChannel verschoben. Verwenden Sie beispielsweise NotificationChannel.setImportance() anstelle von NotificationCompat.Builder.setPriority() für Android 8.0 und höher.

Android 13.0, API-Level 33

Android 14.0, API-Level 34

  • Begrenzt Vollbild-Intent-Benachrichtigungen auf Apps, die Anrufe und Wecker bereitstellen. Verwenden Sie die NotificationManager.canUseFullScreenIntent API, um zu prüfen, ob Ihre App die entsprechende Berechtigung hat. Andernfalls kann Ihre App über ACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT die Seite „Einstellungen“ öffnen, auf der Nutzer die Berechtigung gewähren können.

  • Ändert die Art und Weise, wie Nutzer nicht schließbare Benachrichtigungen sehen, indem sie Benachrichtigungen selbst dann schließen können, wenn das Flag Notification.FLAG_ONGOING_EVENT gesetzt ist. Dies gilt nicht für CallStyle-Benachrichtigungen, wenn das Flag Notification.FLAG_ONGOING_EVENT gesetzt ist oder der Geräterichtliniencontroller (Device Policy Controller, DPC) und die unterstützenden Pakete für Unternehmen verwendet werden. Das gilt auch, wenn das Smartphone gesperrt ist oder der Nutzer Alles löschen auswählt.