【发布时间】:2013-01-11 12:33:29
【问题描述】:
我想在缓存中保存一个 ListView,但我不知道该怎么做。该列表是从 SQL 中读取并按字母顺序排列的。它有分隔符,所以它必须读取所有条目并按字母对它们进行分类,以便将分隔符添加到正确的位置。 我认为将列表保存在缓存中比每次都构建它更快。这是正确的?如何将视图保存在缓存中?
【问题讨论】:
标签: android listview caching android-custom-view
我想在缓存中保存一个 ListView,但我不知道该怎么做。该列表是从 SQL 中读取并按字母顺序排列的。它有分隔符,所以它必须读取所有条目并按字母对它们进行分类,以便将分隔符添加到正确的位置。 我认为将列表保存在缓存中比每次都构建它更快。这是正确的?如何将视图保存在缓存中?
【问题讨论】:
标签: android listview caching android-custom-view
我认为将列表保存在缓存中比每次都构建它更快。这是正确的?
不一定正确,假设保存列表 = 保存整个视图及其绘图缓存。无论如何,我不认为有一种简单的方法可以做这样的事情。
但好消息是你真的不需要这样做!
如果您的列表加载速度不快,可能是因为您在 getView() 方法中执行了大量操作,例如解码位图、解析大量数据或类似的事情。
如果您想以正确的方式进行操作 - 如果您有图像,请缓存图像,然后下次从缓存中加载它们并在单独的线程中进行解码(通过使用 AsyncTesk 或其他线程用于此类目的的 API 组件)。如果您正在进行一些繁重的计算或解析 - 也将结果缓存在数据库中,并在下次加载它们(例如,将数据按字母顺序保存在数据库中)
您确实没有理由感到使用这种方法的用户体验有任何缓慢。 视图不应该以您描述的方式“保存”,我真的相信没有理由这样做,因为如果使用得当,Android 的“加载”视图的机制工作得很好
希望对你有帮助,祝你好运。
【讨论】: