我正在构建一个披萨订购应用程序。当用户将商品添加到他的购物车时,他可以选择转到商品类别并浏览/添加新商品。我想做的是:
主屏幕 > 类别列表(第一次出现)> 该类别中的比萨 > 比萨详情 > 购物车 > 类别列表(第二次出现)..
我需要擦除 Activity 堆栈,以便在将商品添加到购物车后,如果用户触摸后退按钮,他/她应该返回 CategoryList(第一次出现)。必须删除“该类别中的比萨 > 比萨详情 > 购物车”。如果他/她再次触摸,他/她应该在主屏幕。
我怎样才能做到这一点?
我正在构建一个披萨订购应用程序。当用户将商品添加到他的购物车时,他可以选择转到商品类别并浏览/添加新商品。我想做的是:
主屏幕 > 类别列表(第一次出现)> 该类别中的比萨 > 比萨详情 > 购物车 > 类别列表(第二次出现)..
我需要擦除 Activity 堆栈,以便在将商品添加到购物车后,如果用户触摸后退按钮,他/她应该返回 CategoryList(第一次出现)。必须删除“该类别中的比萨 > 比萨详情 > 购物车”。如果他/她再次触摸,他/她应该在主屏幕。
我怎样才能做到这一点?
您可以尝试使用 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 Activity?