我正在寻找从历史堆栈中删除StartActivity的解决方案。 StartActivity是在开始时启动的。我正在使用此类检查一些用户值,并希望将用户重定向到MainActivity,如果一切正确的话。
我试图设置一个标志:
addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
但是这不应该做到。
App starts -> StartActivity -> MainActivity -> PRESS back -> the app should end
它确实:
App starts -> StartActivity -> MainActivity -> PRESS back -> StartActivity
感谢您的帮助!
编辑:这是我用来启动MainActivity的代码:
Intent i = new Intent(context, DashBoardActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
答案 0 :(得分:15)
启动MainActivity后,您只需致电finish()即可。
Intent i = new Intent(context, DashBoardActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();
答案 1 :(得分:9)
启动StartActivity时,应使用FLAG_ACTIVITY_NO_HISTORY
来实现所描述的行为。
如果您在AndroidManifest.xml中将noHistory
属性设置为true
,则可能会达到同样效果。