gpt4 book ai didi

android - Android 上的 Activity 娱乐

转载 作者:行者123 更新时间:2023-11-29 01:55:01 25 4
gpt4 key购买 nike

我正在阅读有关管理 Activity 生命周期的官方 Android 教程。请看我引用的以下几点。

(正常的应用程序行为)“当您的 Activity 由于用户按下返回键或 Activity 自行结束而被销毁时,系统对该 Activity 实例的概念将永远消失,因为行为表明不再需要该 Activity。”

(系统引发的破坏)“如果系统由于系统限制(而不是正常的应用程序行为)而破坏了 Activity,那么虽然实际的 Activity 实例已经消失,但系统会记住它的存在,这样如果用户导航回它,系统就会创建一个新实例使用一组保存的数据来描述 Activity 被销毁时的状态。”

“系统用来恢复之前状态的保存数据是存储在Bundle对象中的键值对的集合。默认情况下,保存的信息是关于activity的 View 层次结构的,比如在widget中输入的文本,滚动位置等。要为您的 Activity 保存其他状态信息,例如成员变量,您必须实现 onSaveInstanceState() 并将键值对添加到 Bundle 对象。”

请看我能否从上面总结出正确的结论:

系统具有资源意识,可以通过破坏 Activity 来恢复内存。如果系统这样做,那么它会留下一个选项,可以在以后需要时将被破坏的 Activity 恢复到之前的状态。

状态 = View 状态(默认,自动完成)+ 成员变量状态(手动,由程序员决定)。

我的问题是,如果系统正在销毁一个 Activity 以释放一些内存,那么如果它允许我们保留 Activity 的“副本”以便可以恢复 Activity ,那么它是否会破坏目的完全恢复到破坏前的状态?

最佳答案

不,它并没有违背目的:

  • Bundle 针对可序列化进行了优化,因此 Android 框架可以将其写入磁盘。
  • 表示状态所需的数据远小于运行应用程序副本所需的 RAM 量。例如,如果您向用户显示图像,您可能只需要保存图像的位置,而不是其所有数据。此外,每个 Android 应用程序都是一个全新的 Dalvik VM,因此如果所有 Activity 都来自不同的应用程序,则终止一个 Activity 意味着减少一个 Dalvik VM——并且每个 Dalvik VM 可能需要相对大量的 RAM。

关于android - Android 上的 Activity 娱乐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15727642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com