Android - 如何区分活动重启和“正常”启动

时间:2011-05-05 19:01:25

标签: android android-intent bundle lifecycle destroy

我试图通过标准的startActivity调用来区分活动是否被销毁然后重新启动。区分这个的最佳方法是什么?我需要跟踪一个计数器,当应用程序被销毁并重新启动时,计数器应该递增。我尝试使用putExtra(String,String),但无论如何返回的值都是相同的。

1 个答案:

答案 0 :(得分:2)

您可以尝试使用标志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中检查包的空包,但我还没有完全测试该逻辑。