Fragment onStop () wird direkt nach onStart () aufgerufen - WARUM?

8

Ich habe ein seltsames Problem mit meiner App -

A haben eine Fragmentaktivität, die ein Fragment enthält - Dieses Fragment startet eine AsyncTask onCreate () und bricht die AsyncTask onStop () ab. Mein Problem entsteht, weil, obwohl mein Fragment läuft & amp; ist nicht verdeckt, es ist onStop () wird fast direkt aufgerufen, nachdem es onCreate () ist.

Kann jemand nachvollziehen, warum das passieren würde?

%Vor%

BEARBEITEN

Ich habe den Code aus dem Fragment entfernt und ich bin immer noch absolut verblüfft - Das Problem besteht weiter! Ich habe ein paar weitere Zeilen der Protokollierung hinzugefügt:

%Vor%

Das obige Verhalten ist ... verwirrend. Der in der Aktivität verwendete Code sieht folgendermaßen aus:

%Vor%

Dies ist das Fragment, wie es beim Debugging steht:

%Vor%

EDIT2

Aus dem Code geht hervor, dass der onStop () direkt nach onStart () aufgerufen wird. Ich habe versucht, zu sehen, ob es zur gleichen Zeit wie onStart () aufgerufen wird, indem Sie ein Thread.sleep (1000) in onCreateView () hinzufügen. Die Ausgabe ist die gleiche - was mich glauben macht, dass onStop () direkt vom Fragment-Erstellungsprozess aufgerufen / verursacht wird.

EDIT3

Stacktrace beim Aufbrechen von onStop ():

Ich werde versuchen, den Quellcode anzuhängen und durchzugehen, um herauszufinden, wo das Problem liegt.

    
Graeme 28.09.2011, 10:43
quelle

1 Antwort

8

Ich weiß immer noch nicht, was es versucht hat ... Ich habe recherchiert, wo ich den Quellcode für die beteiligten Klassen namens onStop () finden kann, und festgestellt, dass die Quelle für android-support-v4.jar gepackt ist zusammen mit dem Jar im SDK.

Nachdem ich diese Quelle angefügt hatte, stellte ich bald fest, dass sie nicht mehr synchron war und dass meine android-support-v4.jar sich erheblich von der Version unterscheidet, die mit der aktuellen Version des SDK ausgeliefert wurde.

Das Ersetzen des Jar mit dem mit dem SDK gepackten Programm behebt das Problem sofort und es wird kein onStop () nach onStart () aufgerufen. Ich bin mir nicht sicher, welcher Bug das verursacht hat, aber die neueste Version scheint es ziemlich handlich zu beheben.

    
Graeme 28.09.2011, 15:43
quelle

Tags und Links