【问题标题】:Activity lifecycle活动生命周期
【发布时间】:2014-05-18 05:55:09
【问题描述】:
我有 3 项活动:
主要活动 -> 开始活动 2
activity 2 -> 使用 MP 播放声音,如果完成则启动 activity 3
activity 3 -> 使用 MP 播放另一个声音,如果完成则启动 Main。
现在我回到主活动,单击返回按钮并返回活动 3,但如果单击主活动中的返回,我想退出应用程序。
我该如何处理?
【问题讨论】:
标签:
android
return
main
android-lifecycle
【解决方案1】:
将此添加到清单中的主要活动定义中:android:launchMode="singleTask"
在您的示例中发生的情况是,您在每个级别调用 startActivity 时将活动添加到堆栈中。如果你调用startActivity 回到你的主要活动,你只是将它添加到堆栈中。但是,如果您不想担心将所有内容从堆栈中弹出,您可以将其添加到您的活动清单条目中,系统会将主要活动放在堆栈顶部并删除其上的任何其他内容。
这种方法比在所有活动上调用 finish() 更简洁一些,因为您可能希望从活动 3 回到活动 2。
【解决方案2】:
您可以在使用finish() 方法开始下一个活动时完成这些活动。如果这样做,您也不必启动 Main。
活动堆叠在一起。使用 finish() 可以删除当前活动,从而将其从堆栈中删除。
Activity3 -> 完成后完成
Activity2 -> 调用 3 时结束
主要