2010-12-13 87 views
1

我需要得到剛剛出來的活動狀態,例如,我需要在我的onResume()中運行一些代碼,但只能在onPause()之後調用它,而不能在Start()上執行。Android,獲得以前的活動狀態?

如果在onStop()之後調用onResume(),那麼我需要運行一些不同的代碼。

我該如何正確檢查這個?

回答

1

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(); 
+0

謝謝,我會實現這個明天讓你知道我如何繼續。 – Hamid 2010-12-13 16:56:33

+0

我沒有最終這樣做,實際上我只是使用了一個全局變量,並且讓我的onpause設置了布爾值,在這種情況下,如果onpause尚未被調用,那麼在啓動和恢復時將是錯誤的。我不知道哪個更好,但我的工作正常。 – Hamid 2011-01-03 16:38:58