在我的应用程序中,当我启动特定活动时,我希望从下面的堆栈中清除同一包中的所有活动。有人可以帮助我如何做到这一点吗?此外,我不想android:noHistory="true"
在清单中使用,因为我只希望在启动此特定活动时清除堆栈历史记录。
编辑:
为了更清楚地说明我的观点,假设我有活动 a。从 a 我开始活动 b。从 b 我开始 c。但是当我开始c时,我想清除b和a。
在我的应用程序中,当我启动特定活动时,我希望从下面的堆栈中清除同一包中的所有活动。有人可以帮助我如何做到这一点吗?此外,我不想android:noHistory="true"
在清单中使用,因为我只希望在启动此特定活动时清除堆栈历史记录。
编辑:
为了更清楚地说明我的观点,假设我有活动 a。从 a 我开始活动 b。从 b 我开始 c。但是当我开始c时,我想清除b和a。
哦,伙计们,我发现您只需将以下代码与启动堆栈清除活动的 Intent 放在一起:
Intent i = new Intent(this,MyActivity.class);
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(i);
不过感谢您的帮助。
试试这个,
添加android:launchMode="singleTop"
到您想要清除所有堆叠活动的特定活动。
然后在开始您的特定活动时使用intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
和。intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
Intent intent = new Intent(getApplicationContext(), YOUR_CLASS.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
在活动开始之前设置标志......在开始活动后设置标志的意义是什么......代码应该看起来像这样,
Intent intent = new Intent(getContext(), ClassName.class);
intent.setFlags( Intent.FLAG_ACTIVITY_CLEAR_TOP );
v.getRootView().getContext().startActivity(intent);
removeSessionFiles();
我知道这是一个旧线程,但我想与任何想知道的人分享 kotlin 中的语法。
val i = Intent(this@PresentActivity,NextActivity::class.java)
i.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK and Intent.FLAG_ACTIVITY_NEW_TASK
startActivity(i)