0
我試圖區分活動是否被銷燬,然後重新啓動與何時通過標準startActivity調用啓動。區分這一點的最佳方式是什麼?我需要跟蹤一個計數器,並且應用程序被銷燬並重新啓動時,計數器應該增加而不是。我嘗試使用putExtra(String,String),但返回的值是相同的。Android - 如何將活動重新啓動與「正常」啓動區分
我試圖區分活動是否被銷燬,然後重新啓動與何時通過標準startActivity調用啓動。區分這一點的最佳方式是什麼?我需要跟蹤一個計數器,並且應用程序被銷燬並重新啓動時,計數器應該增加而不是。我嘗試使用putExtra(String,String),但返回的值是相同的。Android - 如何將活動重新啓動與「正常」啓動區分
你可以嘗試使用一個標誌isSavedInstanceState。在onResume中將此標誌設置爲false。在onSaveInstanceState中將此標誌設置爲true。在onStop中檢查此標誌。
@Override
protected void onStop(){
super.onStop();
if (!isSavedInstanceState){ // this is a HARD KILL, write to prefs
SharedPreferences prefs = getPreferences(MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putYourCounterIncrementHere
editor.commit();
Log.d(TAG,"savedPrefs");
}
else {
Log.d(TAG,"DidNotSavePrefs");
}
Log.d(TAG,"onStop");
}
這會使你的計數器增加。如果需要,您可以在onCreate中檢查捆綁包是否爲空捆綁包,但我沒有完全測試該邏輯。
謝謝。它看起來像onSaveInstanceState只在應用程序被殺時調用 - 否則它將爲空。這正是我需要的。 – 2011-05-05 20:27:56