什么是Android中的"活动记录对象"?

nis*_*013 7 android android-activity

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

引文:

当您的活动被存储时,Activity对象不存在,但活动记录对象仍然存在 于操作系统中.操作系统可以在需要时使用活动记录重新激活活动.


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

任何人都可以准确定义"活动记录对象"的含义,并且OS只是通过杀死活动来节省大量内存吗?

Bil*_*ips 10

我在这里写了你引用的段落(它来自Brian Hardy和我写的,Android编程:The Big Nerd Ranch Guide).让我看看我是否可以回答你的问题.

作为应用程序开发人员,您不会看到"活动记录对象"(我通常说"活动记录").相反,它存在于Android操作系统中,用于跟踪您的活动.该对象是存储保存的实例状态的位置; 它是最初开始您的活动的目的所在,您收到的活动结果将在交付之前存储.更重要的是,如果活动记录处于活动状态,则可以使用它来重新构建应用程序中的Activity实例.

活动记录对象比Activity类的实例保持活动便宜得多.Activity实例具有完整的视图层次结构,它本身可以轻松占用几兆字节的内存.最重要的是,Activity实例要求您的应用程序存在.因此,如果没有剩下的Activity实例,Android也可以摆脱整个过程.

  • 1-静态值仅存在于您的代码中(就像许多事情一样).这没关系 - 最好尽量减少Android为您的活动存储的东西数量.2-名称"活动记录"以及该解释的大部分灵感来自于阅读Android源代码.但是,您在Android文档中找不到任何类似的解释.(我们发现Android文档对活动可能"活着"的不同方式的解释有点缺乏.) (3认同)
  • 从用户的角度来看,每个活动有一个活动记录.它与应用程序中的Activity实例相关联,因此不会 - 应用程序永远不会共享活动记录. (2认同)