从堆栈中清除启动器活动

Jan*_*Jan 2 android

在我的应用程序中,我有活动 A(启动器/主活动)、B、C。A 根据用户是否通过身份验证启动 B 或 C。

现在我如何删除 A 以便在按下后退按钮时它只是退出应用程序,而不是 A。设置标志FLAG_ACTIVITY_CLEAR_TOP似乎不起作用。

@Override
public void onBackPressed{
    super.onBackPressed();
    finish(); // finish activity B or C

    //also finish activity A
}
Run Code Online (Sandbox Code Playgroud)

小智 5

我认为你需要设置

android:noHistory="true"
Run Code Online (Sandbox Code Playgroud)

在 A. 您可能还需要使用这些标志启动 B/C:

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);    
Run Code Online (Sandbox Code Playgroud)

最后,您可以通过调用以下方法以相同的亲和力完成任务堆栈中当前活动下的所有活动:

finishAffinity()
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息:Android:清除返回堆栈