Android - как отличить перезагрузку активности от «нормального» запуска - PullRequest
0 голосов
/ 05 мая 2011

Я пытаюсь различить, уничтожено ли действие, затем перезапущено по сравнению с тем, когда оно запускается через стандартный вызов startActivity.Какой лучший способ отличить это?Мне нужно отслеживать счетчик, и счетчик должен , а не быть увеличен, когда приложение было уничтожено и перезапущено.Я пытался использовать putExtra (String, String), но возвращаемое значение одинаково независимо.

1 Ответ

2 голосов
/ 05 мая 2011

Вы можете попробовать использовать флаг isSavedInstanceState. Установите этот флаг в false в onResume. Установите этот флаг в true в onSaveInstanceState. Проверьте этот флаг в 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 для нулевого пакета, если хотите, но я не полностью протестировал эту логику.

...