当 MainActiivty 启动另一个时,新活动 Activity A 被推到堆栈顶部并获得焦点。前一个活动仍保留在堆栈中,但已停止。当活动停止时,系统会保留其用户界面的当前状态。
当用户按下后退按钮时,当前活动从栈顶弹出(活动被销毁)并恢复前一个活动(其 UI 的先前状态被恢复)。堆栈中的 Activity 永远不会重新排列,只会从堆栈中压入和弹出——当当前 Activity 启动时将其压入堆栈,并在用户使用“后退”按钮离开时弹出。因此,后堆栈作为“后进先出”对象结构运行。
注意:可以同时在后台执行多个任务。但是,如果用户同时运行多个后台任务,系统可能会开始销毁后台活动以恢复内存,从而导致活动状态丢失。
在您的 MainActivity 到 Activity A 并按回 Button , Activity A 从堆栈中弹出并销毁。
再次从 MainActivty 导航到 A,活动被重新创建,因为它被破坏了。这就是它的工作原理。
有关更多详细信息,请查看以下链接中的后堆栈。
http://developer.android.com/guide/components/tasks-and-back-stack.html
android:launchMode
关于如何启动活动的说明。有四种模式与 Intent 对象中的活动标志(FLAG_ACTIVITY_* 常量)一起工作,以确定当调用活动来处理意图时应该发生什么。
他们是:
- 标准
- 单顶
- 单任务
- 单实例
http://developer.android.com/guide/topics/manifest/activity-element.html#lmode。
但是一旦活动被破坏并且您需要导航到该活动,该活动就会重新创建。