Страница 1 из 19

Урок 136. CursorLoader

Добавлено: 18 ноя 2013, 00:00
damager82
В этом уроке:
- используем CursorLoader


Click here to read this article!

Re: Урок 136. CursorLoader

Добавлено: 18 ноя 2013, 11:45
Newbilius
Есть вопрос: а если данных будет много, даже МНОГО. Курсор будет подгружать данные по мере прокрутки (осталось X лементов до конца - он подгрузил следующие)?
Или просто на фоне крутить, пока не подгрузит все (даже если их несколько тысяч)?
Если второй вариант, как наиболее простым способом заставить его догружать из базы данные по мере прокрутки? (событие OnScroll+что-то ещё)

Ну и неприятный момент: Added in API level 11. Для android 2.3.X как быть? :(

Re: Урок 136. CursorLoader

Добавлено: 18 ноя 2013, 13:17
rezak90
Newbilius писал(а):Есть вопрос: а если данных будет много, даже МНОГО. Курсор будет подгружать данные по мере прокрутки (осталось X лементов до конца - он подгрузил следующие)?
Или просто на фоне крутить, пока не подгрузит все (даже если их несколько тысяч)?
Если второй вариант, как наиболее простым способом заставить его догружать из базы данные по мере прокрутки? (событие OnScroll+что-то ещё)

Ну и неприятный момент: Added in API level 11. Для android 2.3.X как быть? :(
Cursor тем и вкусен что данные подгружает по мере прокрутки, так что хоть млн данных роли не играет.
CursorLoader доступен в саппорт либе.

Re: Урок 136. CursorLoader

Добавлено: 18 ноя 2013, 15:29
toragrin
У меня пока маловато опыта в Android developing, и я не могу найти в коде CursorLoader или MyCursorLoader из урока, подтверждения, что данные будут грузиться по мере прокрутки. Как я понял, грузятся все данные целиком. Это неправильное понимание?

Re: Урок 136. CursorLoader

Добавлено: 19 ноя 2013, 06:20
Newbilius
Вот меня тот же вопрос мучает, что и toragrin.

rezak90 - можете дать ссылку на то место в документации, где говорится про плавную подгрузку по мере прокрутки?

Re: Урок 136. CursorLoader

Добавлено: 19 ноя 2013, 07:41
Foenix
да ладно, ну ошибся человек, чего вы так прям)

Re: Урок 136. CursorLoader

Добавлено: 19 ноя 2013, 08:21
Newbilius
Foenix писал(а):да ладно, ну ошибся человек, чего вы так прям)
В смысле? Просто правда хочется разобрать вопрос, "подгрузка по мере прокрутки" всё таки частый кейс. Никто никому никаких претензий то не предъявлял, "указать место в документации" - это же не ругательство о_О

Re: Урок 136. CursorLoader

Добавлено: 19 ноя 2013, 09:01
Foenix
да в том смысле, что курсор - это просто курсор, никакой встроенной динамической подгрузки у него нету. Хотя если вы спросите мое мнение, то если грузить курсор с локального sqlite, то заметного глазу замедления я на 90 тыс записей не видела. Вот если с удаленного, тогда да.. там постранично нужно организовывать.

Другое дело, что сам листвью по строению кеширует выводимую информацию (об этом много чего написано) с целью увеличить скорость показа данных - это да.

Re: Урок 136. CursorLoader

Добавлено: 19 ноя 2013, 09:40
Newbilius
Foenix писал(а):да в том смысле, что курсор - это просто курсор, никакой встроенной динамической подгрузки у него нету. Хотя если вы спросите мое мнение, то если грузить курсор с локального sqlite, то заметного глазу замедления я на 90 тыс записей не видела. Вот если с удаленного, тогда да.. там постранично нужно организовывать.
Ага... спасибо! Надо поэкспериментировать.

Re: Урок 136. CursorLoader

Добавлено: 19 ноя 2013, 18:45
rezak90
Newbilius писал(а):Вот меня тот же вопрос мучает, что и toragrin.

rezak90 - можете дать ссылку на то место в документации, где говорится про плавную подгрузку по мере прокрутки?
Методом статистического анализа было вычесленно что данные вытягиваются все и хранятся в хешируемой виртуально-разделяемой памяти в андроиде. Курсор, как сказала мадемуазель pheonix, всеголишь интерфейс который выполняет управленческую роль над этими данными.
P.S. Документации по этому всему нету, это просто нужно открывать исходники и самому разбираться.

Re: Урок 136. CursorLoader

Добавлено: 19 ноя 2013, 18:52
Foenix
А перековеркал.....! никто и не поймет что это я такая умная :)

Re: Урок 136. CursorLoader

Добавлено: 19 ноя 2013, 23:45
rezak90
Foenix писал(а):А перековеркал.....! никто и не поймет что это я такая умная :)
я подтверждаю что ты очень умная, доказательства это твой рейтинг!

Re: Урок 136. CursorLoader

Добавлено: 20 ноя 2013, 14:00
qualitat1ve
Сорри за возможный офтоп, но может кто подскажет как вытащить метаданные из фоток сохраненных на андроид устройстве (типа дата создания, разрешение файла и т.п.) используя CursorLoader? Я пока не осилил средства для работы с MediaStore (. Было бы замечательно увидеть полный урок на эту тему =).

Re: Урок 136. CursorLoader

Добавлено: 20 ноя 2013, 14:40
Foenix
вообще-то CursorLoader- это не средство работы с MediaStore

Re: Урок 136. CursorLoader

Добавлено: 20 ноя 2013, 18:09
qualitat1ve
Возможно я неправильно выразился, меня интересуют не средства работы с MediaStore, а способ вытянуть метаданные всех сохраненных на устройстве фотографий.

Re: Урок 136. CursorLoader

Добавлено: 20 ноя 2013, 18:45
rezak90
qualitat1ve писал(а):Возможно я неправильно выразился, меня интересуют не средства работы с MediaStore, а способ вытянуть метаданные всех сохраненных на устройстве фотографий.
есть такой класс ExifInterface, в конструкторе бросаешь путь и имя файла, и дальше вытаскиваешь нужные метаданные методом getAttribute

Re: Урок 136. CursorLoader

Добавлено: 21 ноя 2013, 00:26
qualitat1ve
Ясно, но в чем же разница между MediaStore и ExifInterface? Что лучше/хуже использовать?

Re: Урок 136. CursorLoader

Добавлено: 22 ноя 2013, 21:04
krettt
Всем привет , есть вопрос по CursorAdapter .Как использовать его с checkbox ? Раньше использовал BaseAdapter там просто создавал массив boolean[] isCheckes; и в createView checkbox.setTag(position) и по клику на чекбокс заносил в массив значение. Можно ли сделать аналогичное с CursorAdapter?

Re: Урок 136. CursorLoader

Добавлено: 22 ноя 2013, 21:16
Foenix
Вопрос совершенно не по теме - тема о лоадерах.
Однако. КУрсор - это неизменяемая штука, поэтому использовать его с чекбоксом нельзя. К сожалению, придется перекинуть данные в массив и так работать.

Re: Урок 136. CursorLoader

Добавлено: 22 ноя 2013, 21:30
krettt
Спасибо за ответ . Я надеялся до конца .