8

我指的是以下文章以进一步了解活动的生命周期,并找到短语“活动记录对象”

引用文章:

当您的活动被隐藏时,活动对象不存在,但 活动记录对象存在于操作系统中。操作系统可以在需要时使用活动记录重新激活活动。


当 onSaveInstanceState(...) 被调用时,数据被保存到 Bundle 对象中。然后,该 Bundle 对象被操作系统填充到您的活动的活动记录中

任何人都可以准确定义“活动记录对象”的含义,并且操作系统是否通过杀死活动来节省大量内存?

4

1 回答 1

11

我写了你在这里引用的这段话(它来自我和Brian Hardy写的一本书,Android Programming: The Big Nerd Ranch Guide)。让我看看能不能回答你的问题。

作为应用程序开发人员,您看不到“活动记录对象”(我通常说“活动记录”)。相反,它存在于 Android 操作系统中,用于跟踪您的活动。该对象是您保存的实例状态的存储位置;它是最初开始您的活动的意图所在的地方,您收到的活动结果在交付之前被存储在这里。更重要的是,如果活动记录是活动的,它可以用于在您的应用程序中重构一个活动实例。

活动记录对象比活动类的实例要便宜得多。一个 Activity 实例有一个完整的视图层次结构,它本身很容易占用几兆内存。最重要的是,Activity 实例需要您的应用程序的进程存在。因此,如果没有剩下的 Activity 实例,Android 也可以摆脱你的整个进程。

于 2013-08-08T15:12:33.090 回答