android загрузка в Recyclerview больших данных

Есть R.array.test в котором хранится 11000 итемов

<array name="l"> <item>а</item> ... 10000 <item>а</item> </array>

данный массив я отображаю в Recyclerview, и при переключении на нужный фрагмент приложение не сколько секунд тормозит потом отображает информацию.
Подскажите, где и как лучше хранить большой объем и как его лучше подгружать, чтобы было как наименьшие время подгрузки?


Ответы (1 шт):

Автор решения: Sergei Buvaka

Если у вас такой большой объем данных я бы вам рекомендовал их хранить где-то в базе данных и получать их оттуда не все, а по мере скролла списка вниз (я с трудом представляю себе ситуацию в которой вам единовременно понадобится все 11 тыс элементов). Для этого вы можете реализовать пагинацию RecycleView. Можете почитать здесь. Так же можно поискать либы, вот тут есть даже решение от Google.

Вам конечно придется вероятно заморочиться с созданием запроса в саму базу данных, чтоб получать данные постранично. Для этих целей я бы порекомендовал посмотреть в сторону LiveData + Room.

Но на самом то деле тут решений может быть много, но однозначно не стоит в список грузить все 11 тыс. Но даже если по каким-то причинам вы решили загрузить все 11 тыс, вам нужно все это вынести в фоновый поток, чтоб не грузить ваш UI.

→ Ссылка