Android: Gezeichnete Leinwandfarbe ist verschwunden, wenn die App von der Benachrichtigungsleiste aus fortgesetzt wird

8

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.

Doodlz2

%Vor%

DoodleView2

%Vor%

Frage:

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?

    
pearmak 04.12.2014, 14:59
quelle

3 Antworten

0

Ersetzen:

%Vor%

von:

%Vor%

Jetzt rufen Sie die Aktivität aus dem Verlauf auf, anstatt eine neue Klasse zu erstellen.

    
Mou 15.12.2014, 16:38
quelle
0
  

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.

    
tato.rodrigo 08.12.2014 19:38
quelle
0

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.

    
npace 15.12.2014 10:09
quelle