在 Android 中启动新的 Activity 并完成当前的 Activity? [复制]
Posted
技术标签:
【中文标题】在 Android 中启动新的 Activity 并完成当前的 Activity? [复制]【英文标题】:Start new Activity and finish current one in Android? [duplicate] 【发布时间】:2012-07-03 17:23:38 【问题描述】:目前我正在创建一个新的Activity
并在当前的上调用finish
。
是否有任何标志可以传递给Intent
,从而能够完成当前Activity
,而无需从代码中手动调用finish
?
【问题讨论】:
【参考方案1】:你可以使用finish()
方法或者你可以使用:
android:noHistory="true"
然后就不用再打电话给finish()
了。
<activity android:name=".ClassName" android:noHistory="true" ... />
【讨论】:
你确定这和你说的一样吗?来自 android 文档:FLAG_ACTIVITY_NO_HISTORY 如果设置,新活动不会保存在历史堆栈中。一旦用户离开它,活动就完成了。这也可以使用 noHistory 属性设置。 android:noHistory="true" 和 finish() 不一样! 只用finish(),不要用noHistory 这是完美的,谢谢!【参考方案2】:像这样使用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_ACTIVITY_NO_HISTORY
可以用于您想要完成的活动。例如,您从 A-->B--C 出发。当你从 B-->C 出发时,你想完成活动 B,所以当你从 A-->B 出发时,你可以使用这个标志。当您进行其他活动时,该活动将自动完成。
要了解有关使用 Intent.FLAG_ACTIVITY_NO_HISTORY
的更多信息,请阅读:http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NO_HISTORY
【讨论】:
FLAG_ACTIVITY_NO_HISTORY 则相反。新活动未保存在历史记录中,而我希望完成之前的活动。 不finish()
假设杀死当前活动?您希望它如何到达下一行 startActivity(i)
?对我来说看起来很危险且出乎意料
@Michael Calls are async startActivity() 将被调用。
@tomi 你能解释一下这个“调用是异步的 startActivity() 将被调用。”更准确?
你可以参考这个答案***.com/questions/10847526/…【参考方案3】:
FLAG_ACTIVITY_NO_HISTORY 开始您希望在用户转到另一个活动后完成的活动。
http://developer.android.com/reference/android/content/Intent.html#FLAG%5FACTIVITY%5FNO%5FHISTORY
【讨论】:
FLAG_ACTIVITY_NO_HISTORY 则相反。新活动未保存在历史记录中,而我希望完成之前的活动。 是的,我就是这么说的。您希望完成的活动 A,从活动 A 访问的活动 B。使用我提到的标志启动活动 A,因此当用户从活动 A 漫游到活动 B 时,活动 A 完成。正如我在答案中提到的:“......开始你希望完成的活动时......”。与确认的答案相同。以上是关于在 Android 中启动新的 Activity 并完成当前的 Activity? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
android:Activity启动模式之singleTask
Android-----Intent中通过startActivity(Intent intent )显式启动新的Activity