У меня была такая же проблема,
Краткий ответ: добавьте эту строку к намерению.
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
Длинный ответ:
У меня есть MainActivity
, SecondActivity
и ThirdActivity
, что я хочу сделать, это открыть SecondActivity
с MainActivity
, а затем ThirdActivity
с SecondActivity
, и я хочу нажать кнопку в ThirdActivity
которые закрывают оба SecondActivity
и ThirdActivity
без вызова нового MainActivity
я хочу, чтобы он работал, поскольку я возвращаюсь к нему, а не создаю новый. И самое главное, что мне нужно, - это чтобы кнопка возврата работала нормально в ThirdActivity
вернуться к SecondActivity
, если мне нужно изменить некоторые из моих выборов в SecondActivity
, поэтому я не могу позвонить finish();
в SecondActivity
после запуска ThirdActivity
или любых других решениях, таких как android:noHistory="true"
в манифест SecondActivity
, потому что эти решения убивают SecondActivity
, и я не могу вернуться к нему, кнопка возврата назад.
так что этот флаг решил проблему для меня FLAG_ACTIVITY_REORDER_TO_FRONT
FLAG_ACTIVITY_REORDER_TO_FRONT
Если он установлен в намерении, передаваемом в Context.startActivity (), этот флаг приведет к тому, что> запущенное действие будет перенесено в начало стека истории его задачи, если оно> уже выполняется.
перейти к ссылке здесь
поэтому я попробовал этот код, чтобы вернуться к своему MainActivity
из ThirdActivity
, когда я нажал кнопку в ThirdActivity
. Я надеюсь, что это поможет вам.
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);