我有两个activities
,一个活动包含多个片段,fragment
我打开另一个活动(第二个活动(。我的第二个活动包含一个文件夹名称列表。当我单击文件夹列表项时,将使用子文件夹列表打开相同的活动。,然后再次单击子文件夹列表,它将导航到与其子文件夹列表相同的活动。现在,当我选择文件夹的列表文件时,我想完成单击时打开的所有第二个activity
。
我也尝试使用Intent.FLAG_ACTIVITY_CLEAR_TOP
但它将finish
所有活动,而不是唯一的第二个活动。
提前谢谢。
多次打开相同的活动,您可以使用
android:launchMode="singleInstance"
在清单中像这样:
<activity android:name=".SavedFormActivity"
android:launchMode="singleInstance"/>
android:launchMode="singleTask" //use this for your activity in manifest and
以下是安卓文档中的一些重要行
singleTask
和singleInstance
模式仅在一个方面彼此不同:singleTask
活动允许其他活动成为其任务的一部分。它始终是其任务的根源,但其他活动(必然是"标准"和singleTop
活动(可以启动到该任务中。另一方面,singleInstance
活动不允许其他活动成为其任务的一部分。这是任务中唯一的活动。如果它启动另一个活动,则该活动将分配给不同的任务 — 就好像FLAG_ACTIVITY_NEW_TASK
在意图中一样。
将其添加到活动中的清单文件中
<activity android:name=".MainActivity"
android:launchMode="singleTask"/>
只需在每个意向后调用finish()
。
编辑:
如果您想要后退功能,请在要删除所有后退堆栈时尝试这样做,Activities
像这样添加具有该意图的flags
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
在您的情况下,当您选择文件夹的列表文件时,只需添加标志Intent.FLAG_ACTIVITY_NEW_TASK
并Intent.FLAG_ACTIVITY_CLEAR_TASK
intent
所有以前的后退堆栈Activities
finish
。
使用这个
if (isTaskRoot()==false ) {
finish();
return;
}