【问题标题】:How Activity Stack is maintained for an Android Application?如何为 Android 应用程序维护 Activity Stack?
【发布时间】:2015-11-10 03:13:27
【问题描述】:

我是 Android 编程新手。

我想了解如何为特定 Android 应用程序维护 Activity Stack,以及它如何根据用户导航进行更改。

例如,如果有多个活动,那么当用户单击后退按钮或主页按钮或启动新活动时,活动堆栈的行为如何?

我试图找到一个合适的帖子来获取所有信息,但我没有得到任何信息。有人可以建议我一些可以学习的链接/帖子吗?

谢谢!

已编辑:

到目前为止我遇到的链接/帖子:

  1. onSaveInstanceState is not saving my values ( onCreate input Bundle is always null )

  2. Saving Android Activity state using Save Instance State

  3. Android: Launch mode 'single instance'

【问题讨论】:

    标签: android android-activity activity-stack


    【解决方案1】:

    您是指活动和后台堆栈吗?

    这是一个链接: http://developer.android.com/guide/components/tasks-and-back-stack.html

    任务是用户在执行某项工作时与之交互的一系列活动。活动按每个活动打开的顺序排列在一个堆栈(后堆栈)中。

    设备主屏幕是大多数任务的起始位置。当用户触摸应用程序启动器中的图标(或主屏幕上的快捷方式)时,该应用程序的任务就会进入前台。如果应用程序不存在任何任务(该应用程序最近没有被使用),则创建一个新任务,并且该应用程序的“主”活动作为堆栈中的根活动打开。

    当当前活动开始另一个活动时,新活动被压入堆栈顶部并获得焦点。前一个活动保留在堆栈中,但已停止。当活动停止时,系统会保留其用户界面的当前状态。当用户按下 Back 按钮时,当前 Activity 从栈顶弹出(该 Activity 被销毁)并恢复前一个 Activity(其 UI 的先前状态被恢复)。堆栈中的 Activity 永远不会重新排列,只会从堆栈中压入和弹出——当当前 Activity 启动时将其压入堆栈,并在用户使用“后退”按钮离开时弹出。因此,后堆栈作为“后进先出”对象结构运行。图 1 用时间线可视化了这种行为,显示了活动之间的进度以及每个时间点的当前返回堆栈。

    【讨论】:

    • jMike & @Nippey -- 感谢您的澄清!它几乎回答了我的问题。 :) 只是补充一下,当用户点击“主页”按钮时会发生什么?
    • 添加:只是添加,当用户点击“主页”按钮时会发生什么?当您按下主页按钮时,首先调用 onPause,然后调用 onStop。补充2:我的意思是Back Stack会发生什么?该任务的后台堆栈保持不变——该任务只是在另一个任务发生时失去了焦点。
    • 我的意思是后台堆栈会发生什么? :)
    猜你喜欢
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    相关资源
    最近更新 更多