Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/213.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中启动活动清除top_Android_Android Intent_Android Activity - Fatal编程技术网

在Android中启动活动清除top

在Android中启动活动清除top,android,android-intent,android-activity,Android,Android Intent,Android Activity,我的堆栈中有以下活动: A , B , C, D 我想重新启动B以获得此堆栈: A , B' 其中B'是一个新的B实例(不是旧的实例),接收onNewIntent回调,我该怎么做 顺便说一下,我用的是 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 启动B活动时,以这种方式调用onNewIntent而不是启动新实例在清单文件中使用android:noHistory=true清除特定活动。希望这可以解决您的问题。在清单文件中使用androi

我的堆栈中有以下活动:

A , B , C, D 
我想重新启动B以获得此堆栈:

A , B'
其中B'是一个新的B实例(不是旧的实例),接收onNewIntent回调,我该怎么做

顺便说一下,我用的是

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

启动B活动时,以这种方式调用onNewIntent而不是启动新实例

在清单文件中使用android:noHistory=true清除特定活动。希望这可以解决您的问题。

在清单文件中使用android:noHistory=true清除特定活动。希望这可以解决您的问题。

此处当您使用此代码时,its将引导您进行活动B。在B中,您按后退按钮its将引导您进行活动A

Intent fromDtoB = new Intent(this,B.class);
fromDtoB.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(fromDtoB);
FLAG_ACTIVITY_CLEAR_TASK:如果在传递给Context.startActivity()的意图中设置此标志,则此标志将导致在活动启动之前清除与该活动关联的任何现有任务


FLAG_ACTIVITY_CLEAR_TOP:如果已设置,且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是关闭其上的所有其他活动,并将此意图传递给(现在位于顶部)旧的活动作为新的意图。

在这里,当您使用此代码时,its将引导您进入活动B。在B中,您按后退按钮its将引导您进入a

Intent fromDtoB = new Intent(this,B.class);
fromDtoB.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(fromDtoB);
FLAG_ACTIVITY_CLEAR_TASK:如果在传递给Context.startActivity()的意图中设置此标志,则此标志将导致在活动启动之前清除与该活动关联的任何现有任务


FLAG_ACTIVITY_CLEAR_TOP:如果已设置,且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是关闭其上的所有其他活动,并将此意图传递给(现在位于顶部)将旧活动作为新的意图。

更多地解释您的问题发布您的清单。您是否使用
launchMode=“singleTop”定义了活动B
?以
意图开始活动B。标记活动\u清除\u顶部
是正确的方法,因此它应该按照您所描述的那样工作。肯定还有其他问题。@AndroidDeveloper我认为这个问题已经解释得很好了。您还需要知道什么?在发布清单后进一步解释您的问题。您定义了吗d带有
launchMode=“singleTop”的活动B
?以
意图开始活动B。FLAG\u activity\u CLEAR\u TOP
是正确的方法,因此它应该按照您所描述的那样工作。肯定还有其他问题。@AndroidDeveloper我认为这个问题已经解释得很好了。您还需要知道什么?OP已经说过他正在使用
Intent.FLAG\u activity\CLEAR_TOP
,但它不起作用。仅引用文档不太可能解决他的问题。@DavidWasser:因为在清单中没有添加android:noHistory=true的情况下,它就起作用了。试试看..OP已经说过他正在使用
意图。FLAG_ACTIVITY_CLEAR_TOP
,但它不起作用。仅引用文档不太可能解决问题修复他的问题。@DavidWasser:因为它在清单中不添加android:noHistory=true就可以工作。试试看..你认为这会有什么帮助?OP说他想从活动D启动B,让它从活动堆栈中删除B、C和D,并创建一个新的B实例。如果他设置了
android:noHistory=“true”
对于某些活动,则BACK键无法正常工作,这无助于解决所述问题。您认为这会有什么帮助?OP说他想从活动D启动B,并让它从活动堆栈中删除B、C和D,并创建一个新的B实例。如果他设置了
android:noHistory=“true”
对于某些活动,返回键将无法正常工作,这无助于解决所述问题。