在我的应用程序中,当我启动一个特定的活动时,我希望从下面的堆栈中清除同一个包中的所有活动。有人可以帮我解决这个问题吗?
此外,我不想在清单中使用android:noHistory="true"
,因为我只希望在启动此特定活动时清除堆栈历史记录。
编辑:
为了使我的观点更清楚,假设我有活动。从我开始活动b。从b开始c。但是当我开始时我想清除b和a。
答案 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)
。
答案 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();