我试图通过标准的startActivity调用来区分活动是否被销毁然后重新启动。区分这个的最佳方法是什么?我需要跟踪一个计数器,当应用程序被销毁并重新启动时,计数器应该不递增。我尝试使用putExtra(String,String),但无论如何返回的值都是相同的。
答案 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中检查包的空包,但我还没有完全测试该逻辑。