The Android Developer Challenge is back! Submit your idea before December 2.

Übersicht zu Benachrichtigungen

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

Auf dieser Seite befindet sich 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 findest du im Leitfaden zur Gestaltung von Benachrichtigungen. In diesem Beispiel für eine Android-Benachrichtigung kannst du dich außerdem über Best Practices bei der Verwendung der API Notification.Style informieren – sowohl in mobilen als auch in Wearable-Apps.

Darstellung auf einem Gerät

Benachrichtigungen werden Nutzern an verschiedenen Stellen und in unterschiedlichen Formaten angezeigt. So können sie als Symbol auf der Statusleiste, als etwas detaillierterer Eintrag auf der Benachrichtigungsleiste, als Kennzeichen auf dem App-Symbol und automatisch auf gekoppelten Wearables angezeigt werden.

Status- und Benachrichtigungsleiste

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

Abbildung 1. Benachrichtigungssymbole werden links auf 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 auf 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.

Eine Benachrichtigung bleibt auf 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. Diese werden Vorabbenachrichtigungen genannt. 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. Eine Vorabbenachrichtigung wird vor den Apps angezeigt, die gerade im Vordergrund sind

Die Vorabbenachrichtigung wird angezeigt, sobald deine App die Benachrichtigung sendet, und wird nach einigen Sekunden wieder ausgeblendet. Sie bleibt jedoch wie üblich in der Benachrichtigungsleiste sichtbar.

Bedingungen, unter denen Vorabbenachrichtigungen angezeigt werden können, sind zum Beispiel diese:

  • Der Nutzer ist im Vollbildmodus aktiv (die App verwendet fullScreenIntent).
  • 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.

Sperrbildschirm

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

Du kannst programmatisch festlegen, welche Detailstufe in Benachrichtigungen angezeigt wird, die von deiner App auf einem gesperrten Sperrbildschirm angezeigt werden, oder ob Benachrichtigungen überhaupt auf dem Sperrbildschirm erscheinen sollen.

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 haben Nutzer die Wahl, ob sie Benachrichtigungen auf dem Sperrbildschirm für einzelne Benachrichtigungskanäle deaktivieren oder aktivieren möchten.

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

Weitere Informationen findest du unter Sichtbarkeit des Sperrbildschirms festlegen.

Kennzeichen auf App-Symbolen

Auf Geräten mit Android 8.0 (API-Ebene 26) und höher werden in unterstützten Launchern farbige Kennzeichen (auch als App-Benachrichtigungspunkte bezeichnet) auf den jeweiligen App-Symbolen angezeigt, wenn neue Benachrichtigungen verfügbar sind.

Nutzer können lange auf ein App-Symbol drücken, 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.

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 den Komfort verbessern, indem du einige Designs für die Benachrichtigung auf Wearables zuschneidest und verschiedene mögliche Aktionen anbietest, einschließlich vorgeschlagener 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 maximierten Ansicht angezeigt.

Abbildung 7. Benachrichtigung mit grundlegenden Details

Die am häufigsten genutzten Bestandteile einer Benachrichtigung sind in Abbildung 7 so angegeben:

  1. Kleines Symbol: Dieses Symbol ist erforderlich und wird mit setSmallIcon() festgelegt.
  2. App-Name: Der App-Name wird vom System angegeben.
  3. Zeitstempel: Der Zeitstempel wird ebenfalls vom System angegeben, du kannst ihn jedoch mit setWhen() überschreiben oder mit setShowWhen(false) ausblenden.
  4. Großes Symbol: Dieses Symbol ist optional und wird normalerweise für Kontaktfotos verwendet. Es sollte nicht für das App-Symbol genutzt werden. Festgelegt wird es mit setLargeIcon().
  5. Titel: Der Titel ist optional und wird mit setContentTitle() festgelegt.
  6. Text: Der Text ist optional und wird mit setContentText() festgelegt.

Weitere Informationen, etwa zum Erstellen einer Benachrichtigung mit diesen Funktionen, findest du unter Benachrichtigung erstellen.

Benachrichtigungsaktionen

Obwohl dies nicht erforderlich ist, sollte über jede Benachrichtigung eine entsprechende App-Aktivität geöffnet werden, wenn sie angetippt wird. Zusätzlich zu dieser Standardbenachrichtigungsaktion kannst du 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 9).

Abbildung 9. Benachrichtigung mit Aktionsschaltflächen

Ab Android 7.0 (API-Ebene 24) kannst du auch eine Aktion hinzufügen, über die der Nutzer auf Nachrichten antworten oder anderen Text direkt über die Benachrichtigung eingeben kann.

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

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 8).

Abbildung 8. Maximierbare Benachrichtigung mit viel Text

Du hast auch die Möglichkeit, eine maximierbare Benachrichtigung mit einem Bild, einem Posteingangsstil, einem Chat oder Steuerelementen für die Medienwiedergabe zu erstellen. Weitere Informationen findest du unter Maximierbare Benachrichtigung erstellen.

Wir empfehlen zwar, diese Vorlagen immer zu verwenden, um die Kompatibilität des Designs auf allen Geräten zu gewährleisten, du kannst bei Bedarf aber auch ein benutzerdefiniertes Benachrichtigungslayout erstellen.

Benachrichtigungsaktualisierungen und -gruppen

Damit deine Nutzer nicht zu viele oder doppelte Benachrichtigungen erhalten, wenn weitere Aktualisierungen verfügbar werden, hast du 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 zusammenfassen (verfügbar ab Android 7.0). Über eine Benachrichtigungsgruppe kannst du mehrere Benachrichtigungen zu einem Element auf der Benachrichtigungsleiste zusammenführen – mit einer Zusammenfassung. Der Nutzer kann die Benachrichtigung dann maximieren, um die Details für jede einzelne Benachrichtigung anzusehen.

Die Benachrichtigungsgruppe und jede darin enthaltene Benachrichtigung lässt sich schrittweise erweitern, um weitere Details einzublenden.

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-Ebene 26) müssen alle Benachrichtigungen einem Kanal zugeordnet werden – sonst werden sie nicht angezeigt. Durch die Kategorisierung von Benachrichtigungen in Kanäle können Nutzer bestimmte Benachrichtigungskanäle deiner App deaktivieren (anstatt alle Benachrichtigungen zu deaktivieren). Außerdem haben sie die Möglichkeit, die Einstellungen für visuelle und akustische Signale für einzelne Kanäle zu konfigurieren. Das alles ist über die Android-Systemeinstellungen möglich (Abbildung 11). 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. Effektiv hat also jede App nur einen Kanal.

Abbildung 11. Benachrichtigungseinstellungen der Uhr App und von einem ihrer Kanäle

Eine App kann mehreren Benachrichtigungskanälen zugeordnet sein – jeweils einem separaten Kanal für die unterschiedlichen Benachrichtigungstypen, die die App sendet. Sie kann auch Benachrichtigungskanäle erstellen, wenn der Nutzer der App 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.

Weitere Informationen findest du 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 8.0 (API-Ebene 26) und höher wird die Wichtigkeit einer Benachrichtigung durch die importance des Kanals bestimmt, über den die Benachrichtigung gesendet wurde. Nutzer können die Wichtigkeit eines Benachrichtigungskanals in den Systemeinstellungen ändern (Abbildung 12). Unter Android 7.1 (API-Ebene 25) und niedriger wird die Wichtigkeit einer Benachrichtigung durch die priority der Benachrichtigung bestimmt.

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

Mögliche Wichtigkeitsstufen sind:

  • Dringend: akustisches Signal ertönt, Vorabbenachrichtigung wird angezeigt
  • Hoch: akustisches Signal ertönt
  • Mittel: kein akustisches Signal
  • Niedrig: kein akustisches Signal und wird nicht auf der Statusleiste angezeigt

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 (das Design des Benachrichtigungskennzeichens kann geändert werden).

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 verschiedene 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 hat dann die Möglichkeit, Abhebungsbenachrichtigungen, Einzahlungsbenachrichtigungen oder beides zuzulassen, 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 richtig konfigurieren kannst, musst du eine Kategorie und einen Kanal systemweit festlegen.

Benachrichtigungen für Vordergrunddienste

Eine Benachrichtigung ist erforderlich, wenn deine App einen "Vordergrunddienst" 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 entweder angehalten oder der Status "Vordergrund" dafür deaktiviert werden.

Weitere Informationen findest du unter Dienst im Vordergrund ausführen. Wenn du einen Mediaplayer erstellst, lies dazu bitte auch den Artikel MediaStyle-Benachrichtigungen mit einem Vordergrunddienst verwenden.

Begrenzungen für das Senden

Ab Android 8.1 (API-Ebene 27) können Apps nicht mehr als einmal pro Sekunde einen Benachrichtigungston ausgeben lassen. Wenn deine 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

Seit Android 1.0 haben sich die Benutzeroberfläche des Benachrichtigungssystems und die APIs für Benachrichtigungen stetig weiterentwickelt. Wenn du die aktuellen Benachrichtigungs-API-Funktionen verwenden und gleichzeitig ältere Geräte unterstützen möchtest, verwende einfach die Benachrichtigungs-API der Unterstützungsbibliothek: 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 bei der Weiterentwicklung der Plattform um die aktuellen Methoden ergänzt. Dabei muss beachtet werden, dass die Verfügbarkeit einer Methode in NotificationCompat keine Garantie dafür ist, dass die entsprechende Funktion auf älteren Geräten bereitgestellt wird. In einigen Fällen führt das Aufrufen einer neu eingeführten API auf älteren Geräten zu einer Nulloperation. So zeigt NotificationCompat.addAction() die Aktionsschaltfläche z. B. nur auf einem Gerät mit Android 4.1 (API-Ebene 16) und höher an.

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

Android 4.1, API-Ebene 16

  • Vorlagen für maximierbare Benachrichtigungen (Benachrichtigungsstile) wurden eingeführt, die einen größeren Bereich für den Benachrichtigungsinhalt bieten. Nutzer können mit einem Finger wischen, um eine Benachrichtigung zu maximieren.
  • Möglichkeit wurde eingeführt, einer Benachrichtigung zusätzliche Aktionen in Form von Schaltflächen hinzuzufügen.
  • Möglichkeit für Nutzer wurde eingeführt, Benachrichtigungen für beliebige Apps in den Einstellungen zu deaktivieren.

Android 4.4, API-Ebenen 19 und 20

  • Benachrichtigungs-Listener-Dienste wurden der API hinzugefügt.
  • Die Unterstützung für Android Wear (jetzt Wear OS) wurde in API-Ebene 20 hinzugefügt.

Android 5.0, API-Ebene 21

  • Sperrbildschirm und Vorabbenachrichtigungen wurden eingeführt.
  • Der Nutzer kann das Smartphone jetzt 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.
  • Der API wurden Methoden hinzugefügt, über die festgelegt werden kann, ob eine Benachrichtigung auf dem Sperrbildschirm angezeigt wird oder nicht (setVisibility()). Außerdem kann darüber die "öffentliche" Version des Benachrichtigungstexts angegeben werden.
  • Methode setPriority() wurde hinzugefügt, die dem System mitteilt, wie deutlich diese 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. Dabei ist zu beachten, dass Benachrichtigungsstacks auf Tablets oder Smartphones noch nicht unterstützt wurden. Sie wurden später als Gruppe oder Bundle eingeführt.

Android 7.0, API-Ebene 24

  • Benachrichtigungsvorlagen wurden umgestaltet, um das Hero-Image und den Avatar hervorzuheben.
  • Drei Benachrichtigungsvorlagen wurden hinzugefügt: eine für Apps zum Versenden von Nachrichten und die anderen zwei zum Anpassen von benutzerdefinierten Inhaltsansichten mit Maximierungsoption und anderen Systemanpassungen.
  • Unterstützung von Benachrichtigungsgruppen auf Mobilgeräten (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 haben die Möglichkeit, direkt in einer Benachrichtigung zu antworten. Sie können Text eingeben, der dann an die übergeordnete App der Benachrichtigung weitergeleitet wird.

Android 8.0 (API-Ebene 26)

  • Einzelne Benachrichtigungen müssen jetzt einem bestimmten Kanal zugeordnet werden.
  • Nutzer können jetzt Benachrichtigungen für einzelne Kanäle statt alle Benachrichtigungen einer App deaktivieren.
  • Für Apps mit aktiven Benachrichtigungen wird ein Benachrichtigungskennzeichen auf dem App-Symbol angezeigt, das sich auf dem Launcher- oder Startbildschirm befindet.
  • Nutzer können Benachrichtigungen auf der Leiste jetzt zurückstellen. Außerdem kann ein automatisches Zeitlimit für Benachrichtigungen festgelegt werden.
  • Du hast jetzt die Möglichkeit, auch die Hintergrundfarbe der Benachrichtigung festzulegen.
  • Einige APIs zum Verhalten von Benachrichtigungen wurden von Notification in NotificationChannel verschoben. So sollte z. B. NotificationChannel.setImportance() statt NotificationCompat.Builder.setPriority() unter Android 8.0 und höher verwendet werden.