2010-12-13 10 views
1

Ich brauche den Zustand, aus dem die Aktivität gerade herausgekommen ist, zum Beispiel muss ich etwas Code in meiner onResume() ausführen, aber nur nachdem es nach onPause() aufgerufen wurde und nicht auf Start() folgt.Android, erhalten vorherigen Stand der Aktivität?

Wenn onResume() nach onStop() aufgerufen wird, muss ich einen anderen Code ausführen.

Wie soll ich das richtig überprüfen?

Antwort

1

Here ist der Lebenszyklus. Ich denke, dass Sie eine Flagge in Ihren Präferenzen speichern und es während onResume überprüfen können. Hier einige Pseudo-Code:

onStart() { 
    saveFlagToPreferences(false); 
} 

onResume() { 
    boolean doStuff = getFlagFromPrefs(); 
    if (doStuff) { 
     //do some stuff following onPause 
    } else { 
     //do some stuff following onStop 
    } 
} 

onPause() { 
    saveFlagToPreferences(true); 
} 

onStop() { 
    saveFlagToPreferences(false); 
} 

Um die Einstellungen zu laden Sie so etwas wie verwenden:

SharedPreferences settings = getSharedPreferences("MyAppName",0); 
settings.getBoolean("flag", true); 

Und speichern, um sie:

SharedPreferences settings = getSharedPreferences("MyAppName",0); 
SharedPreferences.Editor editor = settings.edit(); 
editor.putBoolean("flag",true); 
editor.commit(); 
+0

Danke, ich werde dies morgen umzusetzen und lass dich wissen, wie es mir geht. – Hamid

+0

Ich habe es nicht so gemacht, tatsächlich habe ich nur eine globale Variable benutzt und meine onpause hat den Booleschen Wert gesetzt, in diesem Fall wäre es beim Start falsch und würde fortgesetzt, wenn onpause nicht schon aufgerufen wurde. Ich weiß nicht, welche als eine bessere Lösung angesehen wird, aber meine funktioniert gut. – Hamid

Verwandte Themen