簡體   English   中英

Android - 如何區分活動重啟和“正常”啟動

[英]Android - how to differentiate activity restart from a “normal” start

我試圖區分一個活動是否被破壞然后重新啟動,而不是通過標准的startActivity調用啟動它。 區分這個的最佳方法是什么? 我需要跟蹤一個計數器,當應用程序被銷毀並重新啟動時,計數器應該遞增。 我嘗試使用putExtra(String,String),但無論如何返回的值都是相同的。

您可以嘗試使用標志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中檢查包的空包,但我還沒有完全測試該邏輯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM