Например,
В ActivityA есть кнопка для создания Intent, который запустит ActivityB в новом задании, например:
Intent i = new Intent(this, ActivityB.class);
i.setData(Uri.parse("http://www.google.com"));
long timestamp = System.currentTimeMillis();
i.putExtra("ts", timestamp);
i.addFlag(Intent.FLAG_ACTIVITY_NEW_TASK);
Log.d(TAG, "Sending: " + timestamp);
startActivity(i);
Затем в методе ActivityB onResume () есть код для проверки метки времени:
long timestamp = getIntent().getExtras().getLong("ts");
Log.d(TAG, "Receiving: " + timestamp);
Теперь, когда я в первый раз вызываю ActivityB из ActivityA, я получаю следующие журналы:
Sending: 120006000
Receiving: 120006000
Затем, если я оставил ActivityB запущенным в фоновом режиме (нажав кнопку «Домой») и запустил ActivityA, а затем снова вызвал ActivityB, выдается следующее:
Sending: 120013000
Receiving: 120006000
Кажется, хотя ActivityB выходит на передний план с новым Намерением. Дополнительное поле в намерении осталось позади.
Это ошибка или предполагаемое поведение?