Всякий раз, когда действие вызывается из другого действия, вызывающая деятельность переходит в стек в соответствии с жизненным циклом активности. Когда вы переходите от A к B, A записывается в стек и B открывается. Вы хотите пойти (от A до B от C до D к A), (от D до A или наоборот), но не от B до A или C до B или D до C или от A до D, когда вы нажимаете кнопку.
Когда вы вызываете активность C из B, также вызывайте finish(), чтобы уничтожить B и аналогично, когда вы вызываете D из C, чтобы уничтожить C, чтобы вы не могли вернуться назад. Это ограничит ваш поток.
класс А расширяет активность {
// Нажатие кнопки
Intent intent=new Intent(A.this,B.class);
startactivity(intent);
}
класс B расширяет активность {
// Нажатие кнопки
Intent intent=new Intent(B.this,C.class);
startactivity(intent);
finish();
}
Класс C расширяет активность {
// Нажатие кнопки
Intent intent=new Intent(C.this,D.class);
startactivity(intent);
finish();
}
класс D расширяет активность {
// Нажатие кнопки
Intent intent=new Intent(D.this,A.class);
startactivity(intent);
}
Таким образом, если вы переходите от A до B -> A, в стеке, B - C -> B уничтожается (с использованием финиша), C - D -> C уничтожается, и вы можете идти непосредственно от D до A с помощью кнопки «Назад». Если вы снова нажмете кнопку «Назад» после перехода от D к A, она вернется к D, и снова нажмите, чтобы она вернулась к A (первая активность запущена), а затем после повторного нажатия приложение закончится.