如何清除活动下方的活动堆栈

时间:2013-01-02 00:07:09

标签: android android-activity

在我的应用程序中,当我启动一个特定的活动时,我希望从下面的堆栈中清除同一个包中的所有活动。有人可以帮我解决这个问题吗? 此外,我不想在清单中使用android:noHistory="true",因为我只希望在启动此特定活动时清除堆栈历史记录。

编辑:

为了使我的观点更清楚,假设我有活动。从我开始活动b。从b开始c。但是当我开始时我想清除b和a。

4 个答案:

答案 0 :(得分:4)

哦,伙计们,我发现你只需要将以下代码放入启动堆栈清除活动的Intent:

Intent i = new Intent(this,MyActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);

感谢您的帮助。

答案 1 :(得分:1)

试试这个,

android:launchMode="singleTop"添加到您想要清除所有堆叠活动的特定活动中。

然后在开始您的特定活动时使用intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

来源:Android: Clear the back stack

答案 2 :(得分:1)

Intent intent = new Intent(getApplicationContext(), YOUR_CLASS.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

答案 3 :(得分:1)

在活动开始之前设置标志...在开始活动后设置标志的点是什么......代码看起来应该是这样的,

Intent intent = new Intent(getContext(), ClassName.class);
intent.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP );
  v.getRootView().getContext().startActivity(intent);

  removeSessionFiles();