【发布时间】:2013-04-20 22:39:46
【问题描述】:
我正在处理我的一个应用程序中的性能问题。也许你们中的一个可以帮助我?!
我有一个大约有 10k 条目的数据库。 我使用SQLiteDatabase-class 中的默认query 方法查询元素。 查询本身就足够快了。
查询完成后,我必须在 Google 地图上显示结果。 为此,我从包含标记信息的光标生成一个结果数组。
我使用的方法有点像这样:
final ArrayList< MarkerElement > result = new ArrayList< MarkerElement >();
cursor.moveToFirst();
while ( !cursor.isAfterLast() ) {
result.add( new MarkerElement(
cursor.getString( COL_TITLE ),
cursor.getString( COL_SNIPPET ),
new LatLng(
cursor.getDouble( COL_LAT ),
cursor.getDouble( COL_LNG ) ),
cursor.getString( COL_OTHER_USEFUL_DATA ) );
cursor.moveToNext();
}
cursor.close();
MarkerElement 只是一个简单的类,用于保存 Google 地图上标记所需的值。
现在的问题是,遍历所有游标元素需要很长时间。 我也想不出一种聪明的方法来像在 ListView 中那样延迟加载结果,因为我需要同时显示所有结果。
我能做些什么来显着加快这个过程吗?
非常感谢任何帮助!
最好的问候
【问题讨论】:
标签: android database performance sqlite cursor