Модификация с большими данными - PullRequest
2 голосов
/ 31 мая 2019

У меня есть конечная точка API, которая иногда может возвращать большую полезную нагрузку данных (не изображений / файлов), и иногда размер полезной нагрузки может вызвать выброс моего приложения out of memory exception

это пример того, как выглядит мой интерфейс

@GET("People")
fun getPeopleAsync(): Deferred<Response<List<Person>>>

Мне любопытно, что использование @Streaming будет работать с данными? Я видел только его использование с файлами, так будет ли это работать с данными?

Существуют ли другие методы для работы с большими полезными нагрузками при модернизации?

1 Ответ

0 голосов
/ 07 июня 2019

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

Звонок будет примерно таким:

@GET("People")
fun getPeopleAsync(pageIndex: Int, pageSize: Int = 10): Deferred<Response<List<Person>>>

И вам нужно определить, когда RecyclerView достигнет дна , чтобы снова вызвать API с индексом следующей страницы, и в то же время показать на экране индикатор выполнения или представление загрузки, пока не будет получен ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...