Возвращение двух видов деятельности?
У меня есть эта последовательность действий:
Avtivity01 => Avtivity02 => Avtivity03
Вы можете перейти от Avtivity01
до Avtivity02
после нажатия кнопки.
Вы можете перейти от Avtivity02
к Avtivity03
после нажатия кнопки.
-
Я хочу перейти от Activity03
до Activity01
DIRECTLY после нажатия кнопки.
-
Примечание:
Я НЕ хочу использовать Intent
, потому что я хочу иметь Activity01
, как если бы я нажал кнопку "Назад" с Activity02
Как это сделать, пожалуйста?
Ответы
Ответ 1
Почему вы не можете использовать Intent
? Вы можете использовать FLAG_ACTIVITY_CLEAR_TOP, когда вы нажимаете кнопку. Изменить: Если вы хотите сохранить исходный экземпляр Activity
, вы можете использовать этот флаг в сочетании с FLAG_ACTIVITY_SINGLE_TOP.
Хотите ли вы когда-нибудь нажать кнопку из Activity03, чтобы вернуться к Activity02? Если вы ВСЕГДА хотите, чтобы он возвращался к Activity01, вы могли альтернативно использовать android:noHistory="true"
в Activity02 в манифесте и просто вызвать finish()
в Activity03.
Ответ 2
Вы можете вернуться к более чем одному экрану, на который когда-либо понадобится экран, с использованием намерений и флажков использования, чтобы предотвратить возврат на тот же экран:
Intent gotoScreenVar = new Intent(goFromScreenCls.this, goToScreenCls.class);
gotoScreenVar.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(gotoScreenVar);
Ответ 3
есть хорошая статья. Это поможет вам. Кстати, вы можете использовать FLAG_ACTIVITY_REORDER_TO_FRONT, чтобы решить вашу проблему.
Ответ 4
У меня была такая же проблема,
Короткий ответ: добавьте эту строку в намерение.
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);
Ответ 5
Вы можете переопределить кнопку "Назад" на Activity3
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
startActivity(Activity3.this,Activity1.class);
moveTaskToBack(true);
return true;
}
return super.onKeyDown(keyCode, event);
}
Ответ 6
Он будет работать только с одной строкой.
после вызова третьего вызова активности finish()
в следующую строку. и он будет работать.
например.
В вашем Activity02
Intent thirdActivity = new Intent(this,Activity03.class);
startActivity(thirdActivity);
finish();