1
我需要得到剛剛出來的活動狀態,例如,我需要在我的onResume()中運行一些代碼,但只能在onPause()之後調用它,而不能在Start()上執行。Android,獲得以前的活動狀態?
如果在onStop()之後調用onResume(),那麼我需要運行一些不同的代碼。
我該如何正確檢查這個?
我需要得到剛剛出來的活動狀態,例如,我需要在我的onResume()中運行一些代碼,但只能在onPause()之後調用它,而不能在Start()上執行。Android,獲得以前的活動狀態?
如果在onStop()之後調用onResume(),那麼我需要運行一些不同的代碼。
我該如何正確檢查這個?
Here是生命週期。我認爲你可以在你的喜好中保存一個標誌並在onResume中檢查它。下面是一些僞代碼:
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);
}
要加載,你可以使用類似的喜好:
SharedPreferences settings = getSharedPreferences("MyAppName",0);
settings.getBoolean("flag", true);
,並保存它們:
SharedPreferences settings = getSharedPreferences("MyAppName",0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("flag",true);
editor.commit();
謝謝,我會實現這個明天讓你知道我如何繼續。 – Hamid 2010-12-13 16:56:33
我沒有最終這樣做,實際上我只是使用了一個全局變量,並且讓我的onpause設置了布爾值,在這種情況下,如果onpause尚未被調用,那麼在啓動和恢復時將是錯誤的。我不知道哪個更好,但我的工作正常。 – Hamid 2011-01-03 16:38:58