アクティビティが破棄されてから再開されるのか、標準のstartActivity呼び出しで開始されるのかを区別しようとしています。これを区別するための最良の方法は何ですか?カウンターを追跡する必要があります。アプリが破棄されて再起動されたときに、カウンターをインクリメントしないでください。putExtra(String、String)を使用してみましたが、返される値は同じです。
1 に答える
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でバンドルのnullバンドルを確認できますが、そのロジックを完全にテストしていません。
于 2011-05-05T19:09:25.320 に答える