【发布时间】:2014-11-15 08:10:45
【问题描述】:
在大多数 Android 示例代码中,从 SQLite 数据库填充 ListView 有两种方式,
将数据预取到列表 - 执行查询,为每一行创建模型对象,然后将其添加到 列表 并关闭 光标,然后用 List 填充 ListView。
没有 List 和 Model 对象 - 使用 moveToFirst 跟随 Cursor 执行查询并填充 ListView >、moveToLast、move,根据需要。
现在我想知道,在 Android 中,上述哪种方法更节省内存?
【问题讨论】:
-
100 万 * 5KB 是 5 GB,对吗???
-
不准确计数。但想知道,如果它有那么大的尺寸吗?无论如何我都会更新问题,使其达到 500MB。
-
现在好多了,可以接受... :)
-
好的,但我想知道处理此案的最佳做法。
-
考虑索引 WHERE 子句 以及JOIN 约束 中涉及的字段。我的平均性能提升了大约 350 倍(是的,比没有索引时快 350 倍)
标签: android android-listview android-sqlite android-cursor android-memory