1

在我的类似 Twitter 的应用程序中,我的基本适配器有一个非常大的数据集,它由本身非常大的自定义模型(带有嵌套引用)组成。

我遇到的问题是,在重新创建 Activity onorientation change 时,列表的填充速度很慢(我目前正在通过数据集onSaveInstanceState

我已经研究过改变我序列化模型的方式(目前使用 Kryo,它加快了保存到磁盘方面),缓存到磁盘并重新加载,在列表片段中onCreate使用setRetainInstance(true),我还尝试处理配置更改父活动。

尽管后者是最快的,但它也是我想要采取的最后一个选择,因为处理方向有很多缺点,并且还意味着必须重新编写代码块。

我的问题是,在方向上处理适配器重新填充的最佳做法是什么?

在序列化要通过的列表时,我可以预见 OOM 错误onSaveInstanceState

编辑:可能重复在 Android 中的方向更改之间保留数据的最佳方式

4

2 回答 2

0

您不应该将所有数据加载到列表视图中,只加载必要的部分。看看这样的东西:https ://github.com/commonsguy/cwac-endless

编辑: 您也可以使用像 RoboSpice(https://github.com/octo-online/robospice)这样的库来为您处理数据的缓存,这将大大减少延迟。

于 2013-07-23T20:06:53.010 回答
0

选项之一是避免在方向更改时重新创建活动:为此,在应用程序清单中设置 configChangesAttribute 像这样

<activity android:name=".MainActivity"
          android:label="@string/activity_title"
          android:configChanges="keyboardHidden|orientation|screenSize">
于 2013-07-23T20:07:16.890 回答