我有一个使用RecyclerView的Activity。我在onCreate中设置了我的适配器,并从对象的ArrayList中提取数据。
踢球者:这个ArrayList最初是通过我的SQLite数据库填充的。但是,如果我旋转屏幕,我将不得不以某种方式重新填充该列表,因为活动将被销毁/重新创建。
到目前为止,我已经有两种方法可以使用:
这两种方法中哪一种更好,为什么?
答案 0 :(得分:1)
这两种方法中哪一种更好,为什么?
恕我直言,两者都不是正确的解决方案。
ArrayList
中存储轻量级内容,例如Bundle
个键或ID。使用它从缓存中检索模型对象,并在需要时从数据库加载它们。始终从数据库加载解决方案的问题是速度。如其他地方所述,这需要时间,理想情况下你不想花那么多时间。
Parcelable
模型方法的问题包括:
你对保存的实例状态Bundle
有1MB的限制,这意味着如果用户拥有大量数据,这种方法会崩溃(上面的选项#3也会崩溃,但是因为你的密钥/ ID将小于整个模型对象,崩溃将花费更长的时间)
Parcelable
是一种难以维护的问题,尽管存在各种库以帮助通过注释等来缓解疼痛
答案 1 :(得分:0)
我希望第二种方式更好。一个是,与重新查询数据库相比,使用Parcelables要快得多。第二,它允许您或您的用户修改列表中的数据,并允许它在旋转时保持不变,而不必担心将更改保存到数据库