Я создаю уведомление для лотка уведомлений. Я указываю намерение щелчка следующим образом:
Intent intent = new Intent(context, MyActivity.class);
intent.putExtra("foo", true);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.setData(Uri.parse("" + System.currentTimeMillis()));
Класс MyActivity запускается просто отлично с присутствующим параметром "foo" . Однако после этого я не могу избавиться от этого лишнего - он, похоже, сохраняется в намерении:
// MyActivity
public void onNewIntent(Intent intent) {
super.onNewIntent(intent);
// please go away..
intent.removeExtra("foo");
getIntent().removeExtra("foo");
}
Итерация по клавишам намерения показывает, что "foo" больше не существует. Но если я занимаюсь активностью, а затем снова вывожу ее на передний план, снова появляется параметр "foo" .
Кто-нибудь знает, как действительно избавиться от него? Я также попытался вызвать setIntent(), такое же поведение. Он, как пусковая установка, держится за первоначальное намерение и продолжает повторное использование.
Спасибо