Подтвердить что ты не робот

Возвращение двух видов деятельности?

У меня есть эта последовательность действий: Avtivity01 => Avtivity02 => Avtivity03

Вы можете перейти от Avtivity01 до Avtivity02 после нажатия кнопки.

Вы можете перейти от Avtivity02 к Avtivity03 после нажатия кнопки.

-

Я хочу перейти от Activity03 до Activity01 DIRECTLY после нажатия кнопки.

-

Примечание:

Я НЕ хочу использовать Intent, потому что я хочу иметь Activity01 , как если бы я нажал кнопку "Назад" с Activity02

Как это сделать, пожалуйста?

4b9b3361

Ответ 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);

Ответ 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();