【问题标题】:Task, Back Button, and onSaveInstanceSate method任务、返回按钮和 onSaveInstanceSate 方法
【发布时间】:2012-03-18 01:15:04
【问题描述】:

您好,我在Tasks and Back Stack,Android 开发人员指南上阅读了这些资料后有点困惑:

上面写着:

当 Activity A 启动 Activity B 时,Activity A 会停止,但系统会保留它的状态(例如滚动位置和输入到表单中的文本)。如果用户在 Activity B 中按下返回按钮,则 Activity A 会恢复其状态并恢复。

the APIs reference for onSaveInstanceState() method 中,它说:

当调用 onPause() 和 onStop() 而不是这个方法的一个例子是当用户从活动 B 导航回活动 A 时:不需要在 B 上调用 onSaveInstanceState(Bundle) 因为那个特定的实例会永远不会被恢复,所以系统会避免调用它。

上述两种情况对我来说似乎相同(“按Back 按钮到活动A”和“从活动B 导航回活动A”)。但我不明白为什么前者说 Activity A 恢复并恢复其先前的状态,而后者说 Activity B 的特定实例将永远不会恢复。有什么解释吗?

提前致谢!

【问题讨论】:

    标签: android android-activity task


    【解决方案1】:

    我认为第一个是说 A 将被保存,因此可以恢复,第二个是说 B 不会被保存,因为它无法恢复。

    【讨论】:

    • 你是对的,第二个是说B(不是A)不会被恢复(我错过了阅读它)!从 B 到 A 按下 Back 按钮时,B 被破坏,A 被恢复,所以不需要在 B 上调用 onSaveInstanceState() 对吗?
    • 正确,但实际上,最好始终准备好在您的活动中调用 onSaveInstanceState,因为您永远不知道会发生什么——通知可能会引起用户的注意,他们做某事,然后从其他活动返回到 B,然后 B 需要恢复。
    • "当用户按下返回按钮时,当前活动被销毁,前一个活动恢复。"
    • 谢谢,对于新手来说,有时候阅读开发者指南很容易迷失方向!
    • 请记住,另一个活动可以通过通知出现,当他们从该活动按返回时,您的活动(例如 B)就会恢复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多