Я создал действие, которое отправляет несколько уведомлений в строку состояния. Каждое уведомление содержит намерение с пакетом. Вот код:
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager) getSystemService(ns);
int icon = R.drawable.icon;
long when = System.currentTimeMillis();
Notification notification = new Notification(icon, "Test Notification", when);
Context context = getApplicationContext();
Bundle bundle = new Bundle();
bundle.putString("action", "view");
Intent notificationIntent = new Intent(this, MainActivity.class);
notificationIntent.putExtras(bundle);
PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, Intent.FLAG_ACTIVITY_NEW_TASK);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);
mNotificationManager.notify(1, notification);
Когда пользователь щелкает эти уведомления, я читаю строку пакета «действие» и выполняю это действие. Вот код:
Bundle bundle = this.getIntent().getExtras();
if(bundle != null)
{
String action = bundle.getString("action");
performAction(action)
}
Все работает как положено. Но когда я сворачиваю приложение с помощью кнопки «стрелка» на устройстве, а затем нажимаю и удерживаю кнопку «Домой» и нажимаю на значок моего приложения, приложение запускается и выполняет то же последнее действие, которое было выполнено нажатием последнего уведомления. Я понял, что когда мы щелкаем значок приложения, приложение запускается с последним намерением, вызванным уведомлением. Кто-нибудь может помочь в этом?