Android 活动返回堆栈

发布于 2024-11-27 01:46:05 字数 78 浏览 0 评论 0原文

我在后台堆栈中有 5 个活动。一次,我想从返回堆栈中删除 4 个子活动。我该怎么做?我不想手工完成每项活动。有什么方法可以让我的后堆栈清空吗?

I have 5 activity in back stack. At a time, I want to remove 4 child activity from back stack. how can I do this? i dont want to finish each activity by hand. is there any method which can make my back stack empty?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

執念 2024-12-04 01:46:05

您可以使用 FLAG_ACTIVITY_CLEAR_TOP 标志开始第五个活动。

You can start your fifth activity with the FLAG_ACTIVITY_CLEAR_TOP flag.

在你怀里撒娇 2024-12-04 01:46:05

您想要的本质上是能够从不同于第一个活动的任何其他活动中结束应用程序。

我所做的是使用应用程序变量确定应用程序是否必须关闭,然后在 onresume 方法上检查它。

protected void onResume()
{
        super.onResume();
        if (!getMyApplication().isPlatformActive())
        { 
              /* We finish every activity after resuming if we must shutdown application */
              finish();
        }
}

boolean isRootScreen()
{
        /* Every activity will override this and set it to true if want to exit application from here */
        return false; 
}

protected void onBackPressed()
{
        if(isRootScreen())
        { 
            /* You could show a confirmation dialog here */
            getMyApplication().setPlatformActive(false);
        }
        super.onBackPressed();
}

What you want is essentially being able to end application from any other activity different from the first one.

What I do is using an application variable determining if application must be shutdown and then check it on the onresume method.

protected void onResume()
{
        super.onResume();
        if (!getMyApplication().isPlatformActive())
        { 
              /* We finish every activity after resuming if we must shutdown application */
              finish();
        }
}

boolean isRootScreen()
{
        /* Every activity will override this and set it to true if want to exit application from here */
        return false; 
}

protected void onBackPressed()
{
        if(isRootScreen())
        { 
            /* You could show a confirmation dialog here */
            getMyApplication().setPlatformActive(false);
        }
        super.onBackPressed();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文