Из Android Developer документация
FLAG_ACTIVITY_REORDER_TO_FRONT
public static final int FLAG_ACTIVITY_REORDER_TO_FRONT
Если установлено в намерении, переданном Context.startActivity ()этот флаг приведет к тому, что запущенное действие будет перенесено в начало стека истории его задачи, если оно уже выполняется.
Например, рассмотрим задачу, состоящую из четырех действий: A, B, C, D.Если D вызывает startActivity () с намерением, которое разрешается к компоненту действия B, то B будет перенесен в начало стека истории с таким результирующим порядком: A, C, D, B. Этот флаг будет игнорироваться, еслиТакже указывается FLAG_ACTIVITY_CLEAR_TOP.
В вашем случае вы можете переключаться между ActivityA
и ActivityB
, не заканчивая и не воссоздавая их.
Соберите все вместе.
ActivityA
// Call this method when users press a button on ActivityA to go to ActivityB.
public void goToActivityB(View view) {
Intent intent = new Intent(this, ActivityB.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
}
// When users press a button from ActivityB, ActivityA will be bring to front and this method will be called by Android.
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
String data = intent.getStringExtra("data");
// Update your text view here
yourTextView.setText(data);
}
ActivityB
// Call this method when users press on a button in ActivityB to pass data back to ActivityA.
public void backToActivityA(View view) {
Intent intent = new Intent(this, ActivityA.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
// Send text that users enter into your edit text back to ActivityA
intent.putExtra("data", yourEditText.getText().toString());
startActivity(intent);
}