从历史记录中删除"开始"活动

Mar*_*ark 8 android

可能重复:
从历史堆栈中删除活动

我正在寻找从历史堆栈中删除StartActivity的解决方案.StartActivity是在开始时启动的.我正在使用此类检查一些用户值,并希望将用户重定向到MainActivity,如果一切正确的话.

我试图设置一个标志:

addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Run Code Online (Sandbox Code Playgroud)

但这并不是应该做的.

App starts -> StartActivity -> MainActivity -> PRESS back -> the app should end
Run Code Online (Sandbox Code Playgroud)

它确实:

App starts -> StartActivity -> MainActivity -> PRESS back -> StartActivity
Run Code Online (Sandbox Code Playgroud)

谢谢您帮忙!

编辑:这是我用来启动MainActivity的代码:

Intent i = new Intent(context, DashBoardActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
Run Code Online (Sandbox Code Playgroud)

Flo*_*Flo 16

您可以在启动MainActivity后调用finish().

Intent i = new Intent(context, DashBoardActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();
Run Code Online (Sandbox Code Playgroud)


Zel*_*mir 9

您应该FLAG_ACTIVITY_NO_HISTORY在启动StartActivity时使用以实现所描述的行为.

如果在AndroidManifest.xml中设置noHistory属性,则可能会达到相同的效果true.