Warum deine Benachrichtigungen nach dem Neustart weg sind
Sind deine Benachrichtigungen nach dem Neustart weg, liegt das an der Architektur: Android hält Leiste und Protokoll nur im Arbeitsspeicher.
Du startest das Handy neu, weil es träge geworden ist, oder Android erledigt das über Nacht selbst, um ein Update zu installieren. Zehn Minuten später entsperrst du den Bildschirm, und die Benachrichtigungsleiste ist leer. Nicht aufgeräumt, sondern leer, als wäre in den Stunden vor dem Neustart nichts angekommen, nicht einmal die Nachricht, die du hast eintreffen sehen und um die du dich später kümmern wolltest. Dass Benachrichtigungen nach dem Neustart weg sind, fühlt sich wie ein Fehler an, dabei arbeitet das System genau so, wie es gebaut wurde. Nur erklärt das niemand dem Menschen, der das Handy in der Hand hält.
Hier steht, was zwischen dem Neustart und der leeren Leiste tatsächlich passiert und warum es deine Erinnerungen, Nachrichten und Warnungen unterschiedlich trifft.
Die Benachrichtigungsleiste lebt im Arbeitsspeicher
Die Benachrichtigungsleiste ist keine gespeicherte Datei. Dahinter steckt eine Liste, die ein laufender Systemprozess führt, derselbe, der auch die Statusleiste und den Sperrbildschirm zeichnet. Jede Benachrichtigung, die eine App absetzt, kommt im Arbeitsspeicher auf diese Liste, und jede, die du wegwischst, wird wieder gestrichen. Nichts davon landet auf dem Gerätespeicher, solange das Handy läuft.
Ein Neustart beendet diesen Prozess zusammen mit allen anderen auf dem Handy und startet ihn frisch. Es gibt keinen gespeicherten Zustand, der geladen werden könnte, weil nie etwas gespeichert wurde. Die Leiste, die du direkt nach dem Neustart siehst, ist nicht die alte in wiederhergestellter Form. Es ist eine neue, leere Liste, und in ihr steht erst wieder etwas, wenn eine App erneut etwas absetzt.
Was das System neu aufbaut und was es fallen lässt
Manche Benachrichtigungen tauchen wenige Sekunden nach dem Neustart wieder auf, und genau deshalb wirkt das Verhalten verwirrend statt eindeutig kaputt. Ein kleiner Teil der Apps lässt sich wecken, sobald das System fertig hochgefahren ist, und zwar genau dafür: um die eigenen lokalen Daten zu prüfen und alles erneut abzusetzen, was noch gilt. Das kann ein laufender Download sein, eine Musikwiedergabe oder ein Vordergrunddienst, der immer sichtbar sein soll, solange er aktiv ist. Sagen die Daten, dass die Bedingung weiter gilt, setzt die App eine frische Benachrichtigung ab, die genauso aussieht wie die verlorene.
Alles andere kommt nicht zurück, weil niemand darüber Buch führt. Die Benachrichtigung zu einer Nachricht, die du schon gesehen und in der Leiste liegen gelassen hattest, ist weg, nicht verspätet. Das Benachrichtigungsprotokoll, das sonst festhält, was du weggewischt hast, liegt selbst nur im Arbeitsspeicher und wird vom selben Neustart gelöscht, kann die Frage also auch nicht beantworten. Zwei Systeme, von denen man erwarten könnte, dass sie sich hier unterscheiden, versagen auf dieselbe Weise und aus demselben Grund: Keines von beiden hat je etwas auf den Gerätespeicher geschrieben.
Warum geplante Erinnerungen neu gestellt werden müssen
Erinnerungen und zeitgesteuerte Hinweise fallen nach einem Neustart aus einem verwandten, aber anderen Grund aus. Eine App, die eine künftige Benachrichtigung plant, etwa die Erinnerung an ein Medikament um 20 Uhr oder den Kalenderhinweis zehn Minuten vor einem Termin, nutzt dafür in der Regel die Alarmplanung von Android. Die hält diesen Zeitplan im selben flüchtigen Systemzustand wie alles andere. Ein Neustart löscht jeden ausstehenden Alarm gleich mit.
Eine gut gebaute App fängt das ab. Dazu wartet sie auf die Systemmeldung, die Android nach dem Hochfahren verschickt, liest dann sofort ihre gespeicherte Liste der Erinnerungen vom Gerätespeicher ein und meldet jede einzelne neu beim System an. Dieser zusätzliche Schritt ist Sache der App-Entwickler, nicht von Android, und er wird leicht ausgelassen oder falsch umgesetzt. Wenn eine Erinnerungs-App den ersten Hinweis nach einem Neustart verpasst, alle späteren aber normal auslöst, liegt es fast immer daran: Der Zeitplan musste von Grund auf neu aufgebaut werden, und das geschah entweder zu spät oder ist einmal unbemerkt fehlgeschlagen.
Das Tippziel stirbt mit
Selbst eine Benachrichtigung, die nach dem Neustart erneut abgesetzt wird, verhält sich beim Antippen nicht unbedingt wie vorher. Was beim Tippen passiert, steuert eine Referenz namens PendingIntent. Die App erzeugt sie und übergibt sie an denselben Systemprozess, der auch die Benachrichtigungsleiste verwaltet. Auch diese Referenz lebt im Arbeitsspeicher dieses Prozesses und hängt an genau dem Lauf von App und System, der sie erzeugt hat.
Derselbe Mechanismus steckt hinter einer Grenze, die du auch ohne Neustart kennen solltest: Eine erneut gesendete Benachrichtigung behält ihr ursprüngliches Tippziel nur etwa sechs Stunden lang und nur bis zum nächsten Neustart, weil Android den PendingIntent verwirft, sobald dieses Zeitfenster endet oder der Prozess, der ihn hält, neu startet. Ein Neustart verschafft dem Tippziel keine zusätzliche Zeit. Er beendet es sofort, für alle Benachrichtigungen auf dem Handy gleichzeitig und nicht nur für die erneut gesendeten. Wenn du gerade prüfst, warum eine Benachrichtigung zu fehlen scheint oder sich seltsam verhält, und dazwischen ein Neustart lag, ist ein totes Tippziel ein weiterer Punkt, den du ausschließen solltest, bevor du die App selbst für kaputt hältst.
Was auf dem Gerätespeicher liegen muss, um zu überleben
Das Muster ist überall dasselbe: Was nur in einem laufenden Prozess liegt, verschwindet mit diesem Prozess, und was wirklich auf den Gerätespeicher geschrieben wurde, kümmert ein Neustart nicht. Der eingebaute Benachrichtigungsverlauf von Android schreibt seine Einträge auf den Gerätespeicher, sobald du ihn in den Einstellungen einschaltest, statt sie nur im Arbeitsspeicher der Leiste zu halten. Deshalb übersteht er das Wegwischen und auch einen Neustart, obwohl er weiterhin nur ungefähr den letzten Tag abdeckt, bevor ältere Einträge herausfallen.
Dieser Unterschied ist auch der ganze Grund, warum sich eine eigene App für den Benachrichtigungsverlauf überhaupt lohnt. Der Verlauf von Android ist ein brauchbares Minimum, aber ein knappes. ReNotify schreibt jede Benachrichtigung beim Eintreffen in eine lokale Datenbank auf dem Gerät, nicht in eine Liste im Arbeitsspeicher, die der nächste Neustart löscht, und behält sie dort unbegrenzt, statt sie nach einem Tag herausfallen zu lassen. Die Regel zum Tippziel von oben gilt weiter, sobald eine Benachrichtigung alt genug ist oder das Handy seit ihrem Eintreffen neu gestartet wurde: ReNotify kann den vollständigen Text von allem, was in dieser Datenbank steht, erneut senden, aber kein Tippziel zurückholen, das Android bereits verworfen hat.
Nichts davon ist ein Fehler, den eine einzelne App von innen beheben könnte. So ist die Plattform gebaut, und die Lösung ist jedes Mal dieselbe: Was einen Neustart überstehen soll, muss schon vorher auf dem Gerätespeicher liegen und nicht in einer Liste, die nur existiert, solange das System läuft.