Ich arbeite an einer Zeichen-App und möchte die Aktivität von der Benachrichtigungsleiste aus fortsetzen. Ich habe Codes aus dem Fortsetzen hinzugefügt (anstatt zu erstellen) von der Benachrichtigungsleiste nach der Forschung wie folgt.
Die Zeichenplatte arbeitet mit Farben, auf die gezeichnet werden kann. Wenn Sie die Home-Taste drücken und vom langen pressinghome Bildschirm fortsetzen, sind die Linien noch da. Wenn Sie jedoch von der Benachrichtigungsleiste aus fortfahren, sind alle Zeilen verschwunden und das Zeichenblatt wird erneut gestartet, wobei onCreate_NewDialog angezeigt wird.
Warum sind die gezeichneten Linien weg, wenn sie von der Benachrichtigungsleiste wieder aufgenommen werden, aber immer noch vorhanden sind, wenn sie von einem langen Startbildschirm aus fortfahren?
Die Zeichenplatte arbeitet mit Farben, auf die gezeichnet werden kann. Wenn Sie die Home-Taste drücken und vom langen pressinghome Bildschirm fortsetzen, sind die Linien noch da.
Gut.
Nach dem Aufrufen der Benachrichtigungsleiste sind jedoch alle Zeilen verschwunden und das Zeichenblatt wird erneut gestartet, wobei onCreate_NewDialog angezeigt wird.
Dies scheint aufgrund des von Ihnen verwendeten Erstellungskennzeichens zu geschehen: notificationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
, als Dokumentation sagt:
Wenn gesetzt, wird diese Aktivität der Beginn einer neuen Aufgabe in diesem Historienstapel.
Sie könnten andere Flag-Kombinationen ausprobieren, zum Beispiel notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
, aber beachten Sie, dass dies das "normale" Back-Stack-Verhalten ändert.
Darüber hinaus ist es möglich, dass Sie mit dem aktuellen Status Ihrer App umgehen müssen. Versuchen Sie, unter den Entwicklereinstellungen die Option "Aktivitäten nicht beibehalten" zu aktivieren. Versuchen Sie dann, Ihre App über die Aktivitätenhistorie fortzusetzen.
Ich denke, das Problem ist in der for-Schleife in onDraw - wahrscheinlich sind Pfade, colorsMap und widthMap leer, wenn Sie Ihre Ansicht neu erstellen. Wann und wo legen Sie ihre Daten fest?
In beiden Fällen ist dies kein Problem mit den Benachrichtigungen - dies ist ein Problem mit der Datenpersistenz. Der gleiche Fehler kann wahrscheinlich beobachtet werden, wenn Sie die Option "Aktivitäten nicht beibehalten" in den Entwickleroptionen des Geräts aktivieren.
Tags und Links android android-notifications onresume