清除活动后退堆栈android

时间:2016-06-14 06:46:57

标签: android android-activity back-stack

我知道关于这个主题的堆栈溢出已经有很多问题,但没有什么对我有用。我想要实现的是我想清除特定方法调用上的所有活动回栈。

假设我的应用中有一个 login() 方法的入口点。现在我从五个不同的活动中调用这个方法。登录后始终会显示一个屏幕。现在我想要实现的是,无论从哪个 login() 方法被调用,如果登录成功,那么用户应该转到下一个活动(activity2)并且在双倍时间内按下该活动(活动2)用户应该不在应用程序中。我希望我的活动返回堆栈,以便在 login() 方法成功时清除。

这就是我在登录成功时所做的事情,但它没有帮助。

Intent i = new Intent(context, DrawerActivity.class);
                                           i.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY|Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
((Activity)context).finish();

怎么做?

提前感谢:)

2 个答案:

答案 0 :(得分:0)

如果用户成功登录,则使用以下标志打开您的第二个主要活动:

Intent intent = new Intent(this, ActivitySecond.class);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
            startActivity(intent);
            finish();

答案 1 :(得分:0)

Intent intent = new Intent(this, Example.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
                | Intent.FLAG_ACTIVITY_CLEAR_TASK
                | Intent.FLAG_ACTIVITY_NEW_TASK);

startActivity(intent);