Спасибо за предложение. Я только что попробовал это в Main.java (который запускается виджетом), и это, похоже, не имеет никакого значения. Разве это не просто очистка локальной переменной «extras»? Я полагаю, что проблема заключается в том, как Android запускает действие «недавнее приложение» с последним переданным ему дополнением.
го смущающей проблемы для меня здесь:
У меня есть виджет на главном экране, который при нажатии запускает мое основное приложение Activity с несколькими добавками, добавленными в намерение:
Intent start = new Intent(context, Main.class);
start.putExtra("action", "showXYZ");
start.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(start);
Это все работает нормально, это начинает мою деятельность, и моя активность получает дополнения, как и ожидалось. Он обрабатывает эти дополнения и начинает другую деятельность.
После того, как пользователь щелкнул виджет главного экрана и запустил основное действие таким образом, вход в приложение с помощью метода «Недавние приложения» (удерживая нажатой клавишу «Домой») запускает основное действие с дополнительными функциями, что приводит к обработке что я не хочу (и приводит к открытию второго действия, а не к тому, чтобы просто было показано основное действие).
Есть ли обходной путь для этого? При запуске приложения методом «недавних приложений» я хочу просто запустить основное действие без последнего набора дополнений.
Большое спасибо за помощь! r3mo
Примечание: я на андроиде 1.5
РЕДАКТИРОВАТЬ:
Нашел обходной путь здесь:Android продолжает кешировать мои намерения Дополнения, как объявить ожидающее намерение, которое сохраняет свежие дополнения?
Я собираюсь поставить метку времени, предназначенную для виджета, и проверить, что метка времени недавно появилась в Main.java. Если это так, я продолжу обработку. Если нет, я просто покажу активность Main.java.
Хотелось бы узнать, есть ли официальные решения для этого.