gpt4 book ai didi

java - 转换到另一个 Activity 时保存成员变量

转载 作者:行者123 更新时间:2023-12-01 17:35:28 25 4
gpt4 key购买 nike

场景:

我有一个成员变量,一个数组列表(不是静态的私有(private)成员),其中包含 Activity1 中的自定义对象,

我切换到 Activity 2,将 Activity1 置于暂停状态。截至目前,我没有保存数组列表的数据。

我从 Activity 2 回来, Activity 一处于恢复状态。

我的疑问是,当我转到activity2时,我是否必须在onPause()中保存array-list(成员变量)的数据,本质上,array-list保存对自定义对象的引用。

虽然经过快速测试,array-list的数据仍然完好无损,但我怀疑这些对象是否可以被垃圾收集,并且我应该保存array-list的数据并在onResume中重新加载它。

最佳答案

最好将数据保存在 onPause() 中,因为这是保证调用的最后一个方法,之后就无法保证调用任何 Activity 的生命周期方法。查看更多"Activity Lifecycle" .

如果 Activity 成员中的数据不应在进程启动时保留,您也可以将其保存在 onDestroy() 中。如果进程没有被杀死,onDestroy()也一定会被调用。

但是你应该知道,一旦 Activity 2 启动,Activity 1 就可以随时被销毁。因此,您可能需要至少在 onDestroy() 中以某种方式保留成员对象,甚至在 onPause() 中更好。另一件需要注意的事情是配置更改(例如方向更改)。这些会触发旧 Activity 的销毁并创建新 Activity 实例。如果您没有在 onPause()/onDestroy() 中保留您的成员(然后在 onCreate() 中恢复它),您将拥有配置更改后为空字段。

关于java - 转换到另一个 Activity 时保存成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6840468/

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