android загрузка в Recyclerview больших данных
Есть R.array.test в котором хранится 11000 итемов
<array name="l">
<item>а</item>
... 10000
<item>а</item>
</array>
данный массив я отображаю в Recyclerview, и при переключении на нужный фрагмент приложение не сколько секунд тормозит потом отображает информацию.
Подскажите, где и как лучше хранить большой объем и как его лучше подгружать, чтобы было как наименьшие время подгрузки?
Ответы (1 шт):
Если у вас такой большой объем данных я бы вам рекомендовал их хранить где-то в базе данных и получать их оттуда не все, а по мере скролла списка вниз (я с трудом представляю себе ситуацию в которой вам единовременно понадобится все 11 тыс элементов). Для этого вы можете реализовать пагинацию RecycleView. Можете почитать здесь. Так же можно поискать либы, вот тут есть даже решение от Google.
Вам конечно придется вероятно заморочиться с созданием запроса в саму базу данных, чтоб получать данные постранично. Для этих целей я бы порекомендовал посмотреть в сторону LiveData + Room.
Но на самом то деле тут решений может быть много, но однозначно не стоит в список грузить все 11 тыс. Но даже если по каким-то причинам вы решили загрузить все 11 тыс, вам нужно все это вынести в фоновый поток, чтоб не грузить ваш UI.