Android getIntent () gibt jedes Mal dieselbe Absicht in onResume () zurück. wie int Feld in einem Bündel zu löschen?

8

Ich arbeite an einer App, die getIntent () verwendet, um gebündelte Informationen zu lesen. Ich möchte eines der Bündelfelder auf null setzen, so dass bei nachfolgenden Lebensläufen eine modifizierte Absicht erhalten wird, aber ich bekomme dieselbe Absicht von getIntent () zurück. Ich merke, dass nach dem Drücken der Zurück-Taste eine neue Absicht erzeugt wird, aber nicht anders.

%Vor%

aber wenn die Aktivität wieder aufgenommen wird, gibt getInt () immer noch einen Wert anstelle von null zurück. Nicht sicher, wie Sie ein Int-Feld in einem Bündel löschen können.

Update gerade versucht:

%Vor%

Das funktioniert auch nicht. Sieht so aus, als ob die Absicht von getIntent () nicht geändert werden kann.

Update: onResume () wird 3 Mal hintereinander im Debugger aufgerufen, bevor die Aktivität sichtbar wird? Also, selbst wenn ich hier ein Flag setze, scheint es, dass es schwer ist, den Status zu ändern, weil ich nicht sagen kann, welcher Aufruf von resume () der letzte vor einer tatsächlichen Anzeige ist.

    
Android Developer 11.12.2012, 23:05
quelle

2 Antworten

9

Sie können onNewIntent() überschreiben und die Extras dort ändern. Hier ist die Dokumentation dafür. Nach dieser Methode wird Ihr onResume() aufgerufen, von dem ich glaube, dass Sie hinter ihm stehen.

    
codeMagic 11.12.2012, 23:18
quelle
0

In meinem Fall war mein Problem ein Fehler mit ausgewählten Absichts-Flags. Mein nicht funktionierender Code war:

%Vor%

Jetzt habe ich mit

gelöst %Vor%

Ja, nicht die beste Lösung, aber es funktioniert

    
firegloves 07.06.2016 14:32
quelle

Tags und Links