gpt4 book ai didi

java - 带有 java 集合的 OnSaveInstanceState/OnRestoreInstanceState

转载 作者:行者123 更新时间:2023-11-30 02:04:24 26 4
gpt4 key购买 nike

在使用onsaveInstanceState/onRestoreInstanceState 流程时,是否有保存java 集合的好方法?

我有一个使用一些 java 集合填充一些信息的 Activity (例如包含类型 A 的对象的 ArrayList)。此信息填充在 ListView 中,就像普通的 android 应用程序一样。此外,每一行都将为结果启动一个详细 Activity (startActivityForResult(...)),并预计在返回时进行一些更新(使用 onActivityResult)。

出于测试目的,我在设备开发人员首选项中启用了“不保留 Activity ”以查看应用程序是否崩溃。从逻辑上讲,当我的父 Activity 被删除时,所有对象都将消失。当我返回到该 Activity (onActivityResult 已执行)时,我的列表为空/空。

我的问题是,将我的列表保存在 onSaveInstanceState 中并在 onRestoreInstanceState 方法上恢复是一种好方法,以防止出现空列表或足以检查列表是否onActivityResult 方法为空?那将取决于我的 Activity 逻辑?或者最好保存将在 onActivityResult 方法中使用的所有项目?

最佳答案

好吧,如果您不这样做,您的应用程序会崩溃吗? :)
我认为使用 onSaveInstanceState 保存所有对象是一个很好的方法,因为 Android 只会恢复您的 Views 布局逻辑,而不是您的数据模型逻辑,这取决于你。并且不要忘记您在 onActivityResult 中遇到这种情况,但是如果您的应用进入后台,假设您接到电话,当您回来时,将调用 onResume那时您的数据模型也将为空。因此,如果您需要保留数据模型,则应始终实现 Activity 生命周期 onSaveInstanceStateonRestoreInstanceState。当然,这将取决于您的逻辑,因为如果您在 onResume 中获取所有数据,您将永远不会遇到这个问题。

更多在这里: onSaveInstanceStateonRestoreInstanceState

ps:你的Objects需要实现Serializable或者Parcelable

关于java - 带有 java 集合的 OnSaveInstanceState/OnRestoreInstanceState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30936595/

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