Удаление записи из пакета (т. е. дополнительных функций) не работает в сочетании с кнопкой «Назад»

У меня есть BroadcastReceiver, который прослушивает входящие SMS'.Если сообщение от определенного отправителя, BroadcastReceiver запускает мое приложение со следующим кодом:

final Intent activityIntent = new Intent(context, MainActivity.class);
activityIntent.putExtra("smsChallenge", smsText);
activityIntent.putExtra("smsSenderNumber", senderMobilNumber);
activityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
activityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(activityIntent);

В MainActivity моего приложения (т.е. в onCreate()) я извлекаю значение smsChallenge непреднамеренно и УДАЛИТЬ ЕГО ПОСЛЕ ИЗВЛЕЧЕНИЯ со следующим кодом:

Bundle extras = getIntent().getExtras();
if (extras != null) {
    smsChallenge = extras.getString("smsChallenge");
    extras.remove("smsChallenge");
}

Таким образом, мое приложение запускается из SMS и работает нормально... Но если я нажму кнопку НАЗАД и перезапущу приложение (т.е. через диспетчер задач), значение smsChallengeпо-прежнему находится в пакете extras. Это означает, что мое перезапущенное приложение думает, что оно перезапущено из-за нового SMS, что не соответствует действительности...

Любые идеи, почему удаление пары "ключ-значение" из пакета не работает при использовании кнопки НАЗАД и снова перезапустить приложение?

11
задан flx 23 February 2014 в 11:57
поделиться