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 ausfü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.
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.
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 Ansicht eine Schaltfläche, über die Nutzer eine App beenden können, die Dienste im Vordergrund ausführt.
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. 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.
Die Vorabbenachrichtigung wird angezeigt, sobald Ihre App die Benachrichtigung sendet. Sie verschwindet nach einigen Sekunden wieder, bleibt aber wie gewohnt in der Benachrichtigungsleiste sichtbar.
Bedingungen, unter denen Vorabbenachrichtigungen angezeigt werden können, sind zum Beispiel diese:
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.
Weitere Informationen finden Sie 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 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.
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.
Sie können den Komfort verbessern, indem Sie das Aussehen Ihrer Benachrichtigungen auf Wearables anpassen und verschiedene mögliche Aktionen anbieten, 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.
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.
Die am häufigsten genutzten Bestandteile einer Benachrichtigung sind in Abbildung 7 so angegeben:
- Kleines Symbol: erforderlich; mit
setSmallIcon()
festlegen - App-Name: Wird vom System bereitgestellt.
- Zeitstempel: Wird vom System bereitgestellt, kann aber mit
setWhen()
überschrieben oder mitsetShowWhen(false)
ausgeblendet werden. - Großes Symbol: Optional; wird normalerweise nur für Kontaktfotos verwendet.
Verwenden Sie es nicht für Ihr App-Symbol. Legen Sie dies mit
setLargeIcon()
fest. - Titel: Optional; mit
setContentTitle()
festlegen. - 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).
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.
Entsperren des Geräts erforderlich machen
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. Diese Option bietet zusätzlichen Schutz für Benachrichtigungen auf gesperrten Geräten.
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).
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 mit einer Zusammenfassung zusammenführen. Die Benachrichtigungsgruppe und jede darin enthaltene Benachrichtigung lässt sich schrittweise maximieren, um weitere Details einzublenden, wie in Abbildung 10 dargestellt.
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. 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 dargestellt. 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.
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. Das 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 wurde. Nutzer können die Wichtigkeit eines Benachrichtigungskanals in den Systemeinstellungen ändern, wie in Abbildung 12 dargestellt.
Die möglichen Wichtigkeitsstufen und die zugehörigen Benachrichtigungsverhalten 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. 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).
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-Ebene 27) können Apps nicht mehr als einmal pro Sekunde einen Benachrichtigungston ausgeben lassen. 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 bei der Weiterentwicklung der Plattform um die aktuellen Methoden ergänzt. Die Verfügbarkeit einer Methode in NotificationCompat
ist jedoch keine Garantie dafür, 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.
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 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.
Nutzer können Benachrichtigungen für einzelne Kanäle statt alle Benachrichtigungen einer App deaktivieren.
Bei 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.
Hiermit können Sie die Hintergrundfarbe der Benachrichtigung festlegen.
Einige APIs zum Verhalten von Benachrichtigungen wurden von
Notification
zuNotificationChannel
verschoben. Verwenden Sie unter Android 8.0 und höher beispielsweiseNotificationChannel.setImportance()
anstelle vonNotificationCompat.Builder.setPriority()
.
Android 13.0, API-Level 33
- Fügt die Laufzeitberechtigung hinzu. Damit Ihre App nicht von der Ausnahme ausgenommene Benachrichtigungen senden kann, muss der Nutzer Ihrer App diese Berechtigung erteilen.
Android 14.0, API-Level 34
Begrenzt Vollbild-Intent-Benachrichtigungen auf Apps, die Anrufe und Wecker bereitstellen. Mit der
NotificationManager.canUseFullScreenIntent
API können Sie prüfen, ob Ihre App die Berechtigung hat. Andernfalls kann Ihre App überACTION_MANAGE_APP_USE_FULL_SCREEN_INTENT
die Seite „Einstellungen“ öffnen, auf der Nutzer die Berechtigung gewähren können.Ändert die Funktionsweise von nicht abwischbaren Benachrichtigungen, indem Nutzern die Möglichkeit gegeben wird, Benachrichtigungen auch dann zu schließen, wenn das Flag
Notification.FLAG_ONGOING_EVENT
gesetzt ist. Dies gilt nicht fürCallStyle
-Benachrichtigungen, wenn das FlagNotification.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.