Я разрабатываю приложение, которое покажет некоторые элементы в RecyclerView
, извлекая JSON из веб-службы. Если пользователь прокручивается в конце списка, необходимо получить больше данных. Для пользовательского интерфейса я внедрил EndlessScrollListener, но я не уверен, что будет правильным вариантом для получения фактического JSON с правильным индексом страницы (например, http://some.service/data&page=1). Чтобы читать данные из HTTP-ресурса, я решил использовать библиотеку Volley. Если я использую только сам Volley, это будет проблемой для обработки события onConfigurationChanged
вручную.Каковы наилучшие способы получения данных JSON по запросу?
Я знаю, что AsyncTaskLoader
может помочь мне решить мою проблему, но похоже, что она была предназначена для периодического сбора данных. В моем случае мне нужно загружать данные по запросу (когда пользователь прокручивается вниз).
Я также подумал о внедрении адаптера синхронизации для извлечения данных, загрузчика курсора и поставщика контента для сохранения/чтения данных в автономном режиме, но теперь это выглядит тяжело, потому что я новичок в Android.
Что вы можете предложить?
Меня больше всего интересует архитектурная часть решения.
Правильный способ - просто объяснить, но его сложно реализовать, я просто объясню в этом комментарии. 1) HTTP-вызовы не отвечают на активность, они просто пишут в локальную область кеша хранилища. 2) activity.onStart загружается и подписывается на кеш локального хранилища и обновляется при изменении данных. 3) activity.onStop отменить подписку на локальное хранилище. Есть миллиард способов сделать это полмиллиона библиотек или фреймворков. Удачи. – Budius
@Budius спасибо. Можете ли вы также предложить хотя бы один пример с некоторыми конкретными библиотеками, классами и т. Д.? Therioticaly более ясен, но можете ли вы показать пример? –
Этот парень дает удивительный разговор, охватывающий его основы: https://www.youtube.com/watch?v=xHXn3Kg2IQE – Budius