Намерение со старым дополнением в onCreate () для SingleTask Activity
Например, я создал проект с двумя действиями: FirstActivity с android: launchMode = "singleTask" и SecondActivity.
Сначала пользователь запускает FirstActivity, а после этого SecondActivity запускается по нажатию кнопки. Из SecondActivity мы создаем уведомление в строке состояния.
Intent intent = new Intent(SecondActivity.this, FirstActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra(FirstActivity.ARG, true);
NotificationCompat.Builder builder = new NotificationCompat.Builder(SecondActivity.this);
builder.setSmallIcon(R.drawable.ic_launcher)
.setAutoCancel(true)
.setContentTitle("title")
.setContentText("message");
PendingIntent notifyIntent = PendingIntent.getActivity(SecondActivity.this, 0, intent,PendingIntent.FLAG_CANCEL_CURRENT);
builder.setContentIntent(notifyIntent);
NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(1000, builder.build());
Когда я нажал на это уведомление, и мое приложение теперь запущено, будет запущен метод FirstActivity # onNewIntent, а намерение содержит ARG extra = true. Это нормальная ситуация.
Когда я нажал на это уведомление, и мое приложение НЕ работает сейчас, метод FirstActivity # onNewIntent НЕ будет выполнен, но вместо этого будет выполняться FirstActivity # onCreate (), и я могу получить свой флаг ARG, напримерgetIntent().getBooleanExtra(ARG, false)
Это намерение содержит ARG extra = true. Это тоже правильная ситуация.
Но когда я пытаюсь выйти из приложения после ситуации 2, нажав кнопку «Назад», и снова запустить приложение, я получил в FirstActivity # onCreate () намерение с ARG = true (старое дополнительное значение, которое я обработал). Почему мой флаг "true" после повторного открытия приложения?