【发布时间】:2013-03-18 23:53:18
【问题描述】:
我有一个快速的性能问题;我有一个填充列表视图的 ListView 适配器,我打开我的 sqlite 数据库并在填充视图结束时将其关闭,然后从 SQLite 数据库填充有关列表行的一些信息。我注意到主要在滚动时这样做会严重影响性能,这是有道理的。我想知道如何提高滚动的性能。我查询数据库大约 3 次。
Database db = new Database(context);
db.open();
viewHolder.first.setText(db.queryFirst());
viewHolder.second.setText(db.querySecond());
viewHolder.third.setText(db.queryThird());
db.close();
我应该保留对 DB 的引用作为实例变量,并在查询时打开和关闭,或者我应该如何处理?
【问题讨论】:
-
我通常在 onCreate 中打开数据库并在 onDestroy 中关闭它。
-
我可能会遇到并发问题,因为我正在运行一些需要访问数据库的服务。
-
服务是否写入数据库。
-
为什么不使用 simpleCursorAdapter?
-
@HoanNguyen 该服务可能会写入它所依赖的数据库。我还需要在数据库中查询更多状态,而不仅仅是获取特定行的信息以映射到视图。
标签: android performance sqlite listview android-listview