我有一个通常包含< 100个条目。有时200-1000个条目。偶尔它可以包含更多,例如20000个条目。 从几个SQLiteDatabase表中查询数据。
我执行的操作包括:移动一些项目,列表的开头或结尾,修改内容,删除它们,添加新内容等。 - 并保存数据库中的更改。
对于ListView,我致电mAdapter.notifyDataSetChanged()
。
我考虑实现一个Loader(SQLite查询加载器)来使用Loaders。加载器将观察数据更改,重新运行查询,我将使用mAdaptor.swapCursor()
来使用新的Cursor。
我的问题是:虽然两种方法都是异步的,但上述哪种方法会更有效? (加载时间较短等)?
答案 0 :(得分:0)
这也是我自己的问题,但我认为根据我的信息:
file-system
查询数据库的内容比RAM
慢得多(您可以访问this link)Adapter
提供了一些更有效的方法来通知notifyItemRangeIserted()
等数据集更改,ArrayList
将位于RAM
,因为您的应用程序所在。所以我得出结论,在内存中缓存数据会更快但你绝对应该注意堆大小和内存泄漏!