在我的Android应用程序中,我试图确保在导航到它时,某些活动应始终放在backstack的根目录下。
例如,用户启动A-> B-> C-> D活动。成像A - 闪屏(NoHistory = true),B - 主页,C,D - 一些细节页面。在详细信息页面(D)上,用户可以进入主要活动(B)。有B-C-D Backstack用户按“Go To B”按钮并导航到现有的家庭活动(B),同时停止和销毁C,D活动。我正在使用SingleInstance进行我的B活动,在这种情况下它可以正常工作。
如果这对我不起作用,我就有这种情况。在启动画面我可以发现我应该跳过主页并直接进入其中一个详细信息页面(例如D)。在这里,当我回到主页时,我的背板是错误的:D-> B而不是B.
在我的情况下,哪些标志或属性更合适。可能是更新应用程序导航逻辑更有效的方法吗?
感谢您的任何建议!
答案 0 :(得分:2)
在A:
Intent intent = new Intent(B.class, this);
startActivity(intent);
finish(); //finish A behind you so you can only explicitly return to it
在B中,我猜两种按钮方法可以让你进入C或D:
public void buttonToC(View view){
Intent intent = new Intent(C.class, this);
startActivity(intent);
}
public void buttonToD(View view){
Intent intent = new Intent(D.class, this);
startActivity(intent);
}
在C和D中,如果按后退,您可以选择完成活动:
public void onBackPressed(){
Intent intent = new Intent(B.class, this);
startActivity(intent);
finish(); // optional
}
所以A - > B和A完成。从B - >; C或D但B仍然在后台运行。在C或D中,按下后退会显示背景活动B.这应该有效。