Есть новостной агрегатор. Статьи грузятся из сети, и хранятся в локальной SQLite. UI организован стандартно: RecyclerView, элементами которого являются превью статей.
Вопрос следующий: как оптимально организовать подгрузку данных в RecyclerView из SQLite, если на экране помещается ≈ 3 элемента?
Поясню: в данном вопросе временем загрузки статей из сети, их размещением в БД и временем преобразования статей в превью пренебрегаем. Интересует механизм подгрузки элементов в RecyclerView за один запрос и организация этой подгрузки. Стандартный механизм (загружаем сколько-то элементов -> пользователь прокручивает список до конца -> загружаем новую порцию элементов) не подходит.
Например, возможно стоит ловить скроллинг на середине списка и уже тогда начинать подгрузку новых данных? Кроме того, возможно у уважаемого сообщества есть опыт о том, какое количество элементов из SQLite оптимально забирать за один запрос? Т.к. есть подозрение, что загрузка 3 элементов из SQLite будет примерно равна по времени загрузке 30 элементов, т.к. большая часть времени тратится на саму транзакцию, но уже скажем запрашивать 300 элементов за запрос будет неоптимально.
SQLiteCursorесть буферCursorWindow, размером около 2 MB. И если ваш запрос вытаскивает > 2 MB, уже будут относительно большие накладные расходы по времени со стороныSQLiteCursor. – Aliaksei Dec 15 '17 at 10:35SQLiteCursorпри больших запросах см. в этой статье – Aliaksei Dec 15 '17 at 10:43