1

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

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

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

我怎样才能做到这一点?

4

1 回答 1

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 StackHow to clear the Android Stack of Activity?

于 2012-06-07T13:32:14.703 回答