Android onSaveInstanceState捆绑包

Android onSaveInstanceState捆绑包,android,memory,bundle,Android,Memory,Bundle,当android由于系统限制而终止您的进程时,它通过将数据存储在捆绑包中,使您能够跨进程持久化数据。如果进程被终止,此捆绑包保存在何处?它生活在哪个过程中?它生活在记忆中的什么地方?它是否存在于内核内存中?内核内存是一个受保护的内存空间,其中只有像内核代码这样的关键代码存在。这是为了防止来自用户和内核的数据干扰,以及出于其他性能和设计原因。内核内存将在重新启动后保持不变 在捆绑包中持久化的数据通过onSaveInstanceState()方法传递-在用户离开活动之前,而不是在活动被销毁之前。这可

当android由于系统限制而终止您的进程时,它通过将数据存储在捆绑包中,使您能够跨进程持久化数据。如果进程被终止,此捆绑包保存在何处?它生活在哪个过程中?它生活在记忆中的什么地方?它是否存在于内核内存中?

内核内存是一个受保护的内存空间,其中只有像内核代码这样的关键代码存在。这是为了防止来自用户和内核的数据干扰,以及出于其他性能和设计原因。内核内存将在重新启动后保持不变

在捆绑包中持久化的数据通过onSaveInstanceState()方法传递-在用户离开活动之前,而不是在活动被销毁之前。这可能意味着内存不是像存储卡那样写入静态存储区域。该捆绑包确实将以更动态的方式持久化

虽然这个问题还没有直接回答,但看起来这是RAM上的内存。当你观察安卓设备的性能时,内存越大的最新设备似乎能够将应用程序保留更长时间

从官方文档中可以看出,这个内存是由Android自己跟踪的

默认情况下,系统使用Bundle实例状态进行保存 有关活动布局中每个视图对象的信息(例如 输入到EditText对象中的文本值)。那么,如果你的活动 实例被销毁并重新创建,布局的状态为 已恢复到以前的状态,无需任何代码。然而, 您的活动可能有更多您想要的状态信息 还原,例如跟踪用户在中的进度的成员变量 活动

若要保存有关“活动”状态的其他数据,必须重写 onSaveInstanceState()回调方法。系统称之为 方法,并将其传递给捆绑包 对象,该对象将在活动被销毁时保存 意外地如果系统以后必须重新创建活动实例, 它将相同的Bundle对象传递给onRestoreInstanceState()和 和onCreate()方法

还请记住,当设备关闭时,此捆绑包将被销毁。Android可能有一个专门为此设计的内存区域,但无论如何,它都在RAM中的某个地方