Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.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中启动新活动并完成当前活动?_Android_Android Activity_Flags_Start Activity - Fatal编程技术网

在Android中启动新活动并完成当前活动?

在Android中启动新活动并完成当前活动?,android,android-activity,flags,start-activity,Android,Android Activity,Flags,Start Activity,目前,我正在启动一个新的活动,并对当前活动调用finish 是否有任何可以传递给Intent的标志,可以在不需要从代码手动调用finish的情况下完成当前活动?您可以使用finish()方法,也可以使用: android:noHistory="true" 这样就不需要再调用finish() <activity android:name=".ClassName" android:noHistory="true" ... /> 在用户转到另一个活动后,启动您希望完成的活动时,标记活动

目前,我正在启动一个新的
活动
,并对当前活动调用
finish

是否有任何可以传递给
Intent
的标志,可以在不需要从代码手动调用
finish
的情况下完成当前
活动

您可以使用
finish()
方法,也可以使用:

android:noHistory="true"
这样就不需要再调用
finish()

<activity android:name=".ClassName" android:noHistory="true" ... />

在用户转到另一个活动后,启动您希望完成的活动时,标记活动\u否\u历史记录


像这样使用
finish

Intent i = new Intent(Main_Menu.this, NextActivity.class);
finish();  //Kill the activity from which you will go to next activity 
startActivity(i);
FLAG\u ACTIVITY\u NO\u HISTORY
您可以将case用于您想要完成的活动。例如,您要从A-->B--C开始。您希望在从B-->C开始时完成活动B,因此从A-->B开始时可以使用此标志。当您转到其他活动时,此活动将自动完成


要了解有关使用
Intent.FLAG\u ACTIVITY\u NO\u HISTORY的更多信息,请阅读:

您确定这就是您所说的吗?从android文档中:标记\u活动\u否\u历史如果设置,则新活动不会保留在历史堆栈中。一旦用户离开它,活动就完成了。这也可以通过noHistory属性设置。android:noHistory=“true”与finish()不同!只需使用finish(),不要使用nohistory这太完美了,谢谢!标记活动历史与此相反。新活动未保存在历史记录中,而我希望上一个活动已完成。
finish()?您希望它如何到达下一行
startActivity(i)
?看起来很危险,让人意想不到me@Michael调用是异步的startActivity()将被调用。@tomi您能否解释一下“调用是异步的startActivity()将被调用”。更准确地说,您可以引用此应答标志\u ACTIVITY\u NO\u历史记录的作用正好相反。新活动不会保存在历史记录中,而我希望以前的活动完成。是的,这就是我所说的。您希望完成的活动A,从活动A访问的活动B。使用我提到的标志启动活动A。当用户从活动A漫游到活动B时,活动A已完成。正如我在回答中提到的:“……当开始你希望完成的活动时……”。这是与确认答案相同的答案。