本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Removing an activity from the history stack
我正在寻找从历史堆栈中删除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);
你可以发贴你的代码来切换活动吗?
您可以在启动MainActivity后调用finish()。
Intent i = new Intent(context, DashBoardActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(i);
finish();
当然,这种方法也很有效,但当他提到从历史中删除时,标志首先出现在我脑海中。
是的,您的解决方案可能是归档它的正确方法。 我的一个更快,更脏。;)
谢谢,您的解决方案有效。 但另一个解决方案@Zelimir似乎更优雅。
谢谢,从文档中可以立即清楚地知道您需要传递FLAG_ACTIVITY_CLEAR_TOP并且还要调用finish()
启动StartActivity时应使用FLAG_ACTIVITY_NO_HISTORY来实现所描述的行为。
如果在AndroidManifest.xml中将noHistory属性设置为true,则可能会达到相同的效果。
注意:如果您尝试使用像facebook这样的登录提供程序(它会启动自己的活动然后将您返回到您的启动活动),则此方法不起作用
多数民众赞成我的情况,任何提示如何处理?