Как лениво загружать курсор при прокруткеAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как лениво загружать курсор при прокрутке

Сообщение Anonymous »

У меня есть база данных, содержащая около 1 миллиона строк (до 15 миллионов), и мне нужно загрузить их в ExpandableListView. В моей базе данных есть общий столбец _id с моим сервером, и они никогда не удаляются, у них есть столбец с идентификаторами их режимов STATUS_AVAILABLE и STATUS_UNAVAILABLE, и мне нужно загружать только доступные.
Очевидно, что загрузка их всех с помощью курсора занимает слишком много времени и занимает слишком много памяти даже без вызова getCount(), поэтому я решил сделать это в адаптере моего списка:

Код: Выделить всё

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());
Возможно несовпадение идентификаторов и groupPosition. Итак, по сути, я спрашиваю, как я могу запросить свою базу данных, чтобы получить, например, следующее:

Код: Выделить всё

"SELECT * FROM table WHERE col_status = status_available POSITION = 999999, null);
но даже если такая вещь существует, я думаю, это займет некоторое время, поскольку она должна учитывать позицию, поэтому лучший способ сделать это - ленивая загрузка в курсор или в ArrayList Есть ли способ ленивой загрузки курсора при прокрутке, не теряя позиции в просмотре списка? (индексная полоса)

Подробнее здесь: https://stackoverflow.com/questions/285 ... -on-scroll
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»