你好伙计们希望你度过愉快的一天,我有一个数据库,里面有大约1百万行(最多15米),我需要在ExpandableListView上加载它们。我的数据库与我的服务器有一个共享的_id列,它们永远不会删除,它们有一个用于标识其STATUS_AVAILABLE和STATUS_UNAVAILABLE模式的列,我只需加载可用的一个。明显加载所有这些使用Cursor需要太长时间,甚至没有调用getCount(),所以我决定在我的listview的适配器上执行此操作:
Cursor mCursor = MyService.getMapsActivity_DB().rawQuery("SELECT * FROM "+"'"+getGroup(groupPosition)+"'"+" WHERE _id="+"'"+groupPosition+"'", null);
mCursor.moveToPosition(childPosition);
并逐个加载它们,但我的光标只计算可用的项目:
Cursor mCursor = getInformer().OnGetDatabase().rawQuery("SELECT COUNT(*) FROM "+"'"+getGroup(groupPosition)+"'"+ApplyChildLoadCondition(), getInformer().ChildSelectionArgs());
在id和groupPosition中会出现错误。所以基本上我要求的是如何查询我的数据库以获得例如:
"SELECT * FROM table WHERE col_status = status_available POSITION = 999999, null);
但是即使有这样的事情,我想它会花费一段时间,因为它应该计入位置,所以最好的方法是延迟加载到游标或ArrayList中,有什么方法我可以延迟加载光标滚动而不会丢失列表视图上的位置? (索引栏)