任务的根安卓活动



在我的Android应用程序中,我试图确保某些活动在导航到backstack时应始终放在backstack的根目录中。

例如,用户启动 A->B->C->D 活动。成像 A - 初始屏幕(NoHistory = true),B - 主页,C,D - 一些详细信息页面。在详细信息页面 (D) 上,用户可以转到主活动 (B)。让 B-C-D 后退堆栈用户按"转到 B"按钮并导航到现有的主活动 (B),同时停止并销毁 C,D 活动。我正在为我的 B 活动使用 SingleInstance,在这种情况下它工作正常。

有这种情况,这对我不起作用。在初始屏幕上,我可以发现我应该跳过主页并直接转到其中一个详细信息页面(例如 D)。在这里,当我转到主页时,我的后备堆栈是错误的:D->B而不仅仅是B。

哪些标志或属性更适合我的情况。更新应用程序导航逻辑可能是更有效的方法?

感谢您的任何建议!

在 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 中,如果按 Back 键,则可以选择完成活动:

public void onBackPressed(){
    Intent intent = new Intent(B.class, this);
    startActivity(intent);
    finish(); // optional
}

所以 A -> B 和 A 完成。从 B -> C 或 D 但 B 仍在后台运行。在 C 或 D 中时,按后退会显示后台活动 B。这应该有效。

相关内容

  • 没有找到相关文章

最新更新