gpt4 book ai didi

android - 在 Android 中的方向更改之间保留数据的最佳方法

转载 作者:太空狗 更新时间:2023-10-29 12:51:43 25 4
gpt4 key购买 nike

我的教育应用程序有一个带有 6 到 7 个选项卡的选项卡主机,支持横向和纵向模式。在与选项卡关联的每个 Activity 中,我在 ListView 中显示一些学生记录,有一些用于选择的复选框和一些评分栏、按钮等。我通过 Web 服务调用从远程服务器获取这些学生记录。出于某些原因,我的应用程序会在执行某些操作/搜索后显示一个带有一些按钮的初始相对布局它将在 ListView 中显示结果,在 ListView 中单击列表项或按钮后我会显示一些其他布局。这适用于选项卡主机中的所有 Activity 。

如果用户改变方向我必须恢复相同的状态或相同的屏幕意味着如果用户以前看到记录列表我必须显示记录列表,如果是初始我必须只显示初始。我不想强制停止 android 在方向更改时破坏 Activity 或覆盖 public Object onRetainNonConfigurationInstance ()。正如某些博客和 android 文档中所建议的,这些可能会在以后的操作中引起问题。我所做的只是在 onSaveInstanceState Bundle 中保存所有必需的信息,例如哪个屏幕 1 或 2 或 3、 TextView 标签和所有原始数据类型,并在 onRestoreInstanceState 中恢复它们。此外,我正在将自定义搜索结果对象数组写入文件,并在 onSaveInstanceState 和 onRestoreInstanceStates 之间检索和删除它。由于我的搜索结果有 100 个对象,而且我正在存储大量原始数据类型列表,当用户快速旋转设备时,堆大小会迅速增加。

最好的处理方法是什么

1) 坚持 onSaveInstanceState 和 onRestoreInstanceStates,这会使我的屏幕空白一段时间并增加堆大小,当用户多次旋转时不一定执行保存和恢复

2) 将所有需要的数据保持在某个地方是静态的,因为它不是 Activity 的本地数据,它不会破坏

3) 通过扩展 Application 类来保留所有需要的数据?

最佳答案

您还可以使用可以通过方向更改保留的 fragment 。

关于android - 在 Android 中的方向更改之间保留数据的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11578025/

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