以下是我的活动场景:
A1 - > A2 - > (A3) - > A4
我目前在A2,我想从A2直接转到A4,但如果用户按下A4中的后退按钮,请转到A3。如果用户按下A3中的后退按钮,则转到A2,如果用户按下A2中的后退按钮,则转到A1。哪一种是实现这一目标的最佳途径?
到目前为止,我尝试过三种不同的选择:
使用TaskStackBuilder:无法完全达到我想要的效果,因为我创建了一堆新的活动,所以重新创建了A1和A2(我宁愿不重新创建)。
从A2连续调用startActivity(A3)和startActivity(A4)。
从A2调用startActivity(A3),设置Intent Extra。在A3的onCreate()方法中,检查Intent Extra的值,并根据其值自动启动A4。
您认为哪一种是实现我想要的最佳方法?
答案 0 :(得分:1)
我不确定这是一个很好的用户体验。如果他按下A4中的BACK按钮,为什么用户希望看到A3?
然而,如果这是你想要做的,我肯定会选择#3。 A2应该开始A3并传递一个额外的告诉A3立即开始A4。从编码角度来看,这种选择是最直接的,如果他们必须维护它,那么其他人很容易就会遵循。
答案 1 :(得分:0)
从A2创建A4;
拦截A4上的后退事件;
覆盖它并创建A3整理A4。
我发现这是一个很好的解决方案,因为使用A3你不会真的回来。系统会很高兴:)
A4上的
public void onBackPressed() {
finish();
Intent intent = new Intent(this, A3.class);
startActivity(intent);
}