【问题标题】:Clearing a activity back stack android [duplicate]清除活动回栈android [重复]
【发布时间】:2016-10-14 18:14:43
【问题描述】:

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

假设我的应用程序中有一个入口点,即 login() 方法。现在我从五个不同的活动中调用这个方法。登录后总是会显示一个屏幕。现在我想要实现的是无论从哪里调用 login() 方法,如果登录成功,那么用户应该转到下一个活动(活动 2)并在该活动(活动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();

怎么做?

提前致谢:)

【问题讨论】:

    标签: android android-activity back-stack


    【解决方案1】:

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

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

    【讨论】:

    • 它没有帮助,你可以看到编辑。我已经试过了
    • 您能出示您对这两项活动的清单声明吗?
    【解决方案2】:
    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);
    

    【讨论】:

      猜你喜欢
      • 2013-08-16
      • 2017-08-11
      • 2011-10-27
      • 1970-01-01
      • 2013-09-08
      • 2012-09-19
      • 1970-01-01
      • 2018-08-09
      • 2012-06-01
      相关资源
      最近更新 更多