📜  如何清除 android 中的活动堆栈 - Java (1)

📅  最后修改于: 2023-12-03 15:09:12.967000             🧑  作者: Mango

如何清除 Android 中的活动堆栈

在 Android 中,活动堆栈是用于保存活动(Activity)的一种数据结构。每当启动一个新的活动时,它就会被推到堆栈中,并成为当前活动。当一个活动被销毁时,它会从堆栈中弹出,回到上一个活动。但是,有时候我们可能想要清除整个活动堆栈,例如在用户注销时。

下面介绍如何清除 Android 中的活动堆栈。

方法一:使用 Intent.FLAG_ACTIVITY_NEW_TASK 标志

我们可以利用 Intent 的 FLAG_ACTIVITY_NEW_TASK 标志来清除活动堆栈。具体步骤如下:

  1. 在当前活动中创建一个新的 Intent 对象,用于启动目标活动(例如登录活动):
Intent intent = new Intent(this, LoginActivity.class);
  1. 设置 Intent 的标志 FLAG_ACTIVITY_NEW_TASK,以便创建一个新的任务(Task):
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  1. 调用 startActivity 方法启动目标活动:
startActivity(intent);

在此之后,整个活动堆栈将被清除,并且登录活动将成为新的根活动。

方法二:使用 TaskStackBuilder 类

TaskStackBuilder 是 Android 提供的一个实用类,它可以帮助我们清除活动堆栈并创建新的任务。具体步骤如下:

  1. 在当前活动中创建一个新的 Intent 对象,用于启动目标活动:
Intent intent = new Intent(this, LoginActivity.class);
  1. 创建一个 TaskStackBuilder 对象:
TaskStackBuilder stackBuilder = TaskStackBuilder.create(this);
  1. 调用 addNextIntentWithParentStack 方法将目标活动和其父活动添加到任务中:
stackBuilder.addNextIntentWithParentStack(intent);
  1. 调用 startActivities 方法启动任务:
stackBuilder.startActivities();

在此之后,整个活动堆栈将被清除,并且登录活动将成为新的根活动。

以上就是如何清除 Android 中的活动堆栈的两种方法。根据实际需求选择合适的方法即可。