【问题标题】:How to erase Activity stack in Android?如何在 Android 中擦除 Activity 堆栈?
【发布时间】:2012-06-11 13:35:34
【问题描述】:

我正在构建一个披萨订购应用。当用户将商品添加到他的购物车时,他可以选择转到商品类别并浏览/添加新商品。我想做的是:

主屏幕 > CategoryList(第一次出现) > 该类别中的比萨 > 比萨详情 > 购物车 > CategoryList(第二次出现)..

我需要擦除 Activity 堆栈,以便在将商品添加到购物车后,如果用户触摸后退按钮,他/她应该返回 CategoryList(第一次出现)。必须删除“该类别中的比萨 > 比萨详情 > 购物车”。如果他/她再次触摸,他/她应该在主屏幕。

我怎样才能做到这一点?

【问题讨论】:

    标签: android android-activity stack erase


    【解决方案1】:

    您可以尝试使用intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    推送最新活动 见
    http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP

    然后你清除新活动下的活动堆栈。


    此外,您可以尝试覆盖后退事件:

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            moveTaskToBack(true);
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
    

    另请参阅 Android: Clear Activity Stack 要么 How to clear the Android Stack of activities?

    【讨论】:

    • 正是我需要的。谢谢。
    • StackOverflow 让我等了 4 分钟。抱歉耽搁了:)
    猜你喜欢
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 2016-05-09
    • 2016-11-25
    • 1970-01-01
    相关资源
    最近更新 更多