2016-05-26 3 views
0

Я разрабатываю приложение, которое покажет некоторые элементы в RecyclerView, извлекая JSON из веб-службы. Если пользователь прокручивается в конце списка, необходимо получить больше данных. Для пользовательского интерфейса я внедрил EndlessScrollListener, но я не уверен, что будет правильным вариантом для получения фактического JSON с правильным индексом страницы (например, http://some.service/data&page=1). Чтобы читать данные из HTTP-ресурса, я решил использовать библиотеку Volley. Если я использую только сам Volley, это будет проблемой для обработки события onConfigurationChanged вручную.Каковы наилучшие способы получения данных JSON по запросу?

Я знаю, что AsyncTaskLoader может помочь мне решить мою проблему, но похоже, что она была предназначена для периодического сбора данных. В моем случае мне нужно загружать данные по запросу (когда пользователь прокручивается вниз).

Я также подумал о внедрении адаптера синхронизации для извлечения данных, загрузчика курсора и поставщика контента для сохранения/чтения данных в автономном режиме, но теперь это выглядит тяжело, потому что я новичок в Android.

Что вы можете предложить?

Меня больше всего интересует архитектурная часть решения.

+0

Правильный способ - просто объяснить, но его сложно реализовать, я просто объясню в этом комментарии. 1) HTTP-вызовы не отвечают на активность, они просто пишут в локальную область кеша хранилища. 2) activity.onStart загружается и подписывается на кеш локального хранилища и обновляется при изменении данных. 3) activity.onStop отменить подписку на локальное хранилище. Есть миллиард способов сделать это полмиллиона библиотек или фреймворков. Удачи. – Budius

+0

@Budius спасибо. Можете ли вы также предложить хотя бы один пример с некоторыми конкретными библиотеками, классами и т. Д.? Therioticaly более ясен, но можете ли вы показать пример? –

+0

Этот парень дает удивительный разговор, охватывающий его основы: https://www.youtube.com/watch?v=xHXn3Kg2IQE – Budius

ответ

0

Deserialisation of json иногда также является трудной задачей, так что вам нужно сделать запрос с волейболом, а затем в результате у вас есть строка json, затем в async-задаче вы делаете десериализацию на локальный объект, у которого есть структура, в которой вы нуждаетесь, и только после этого установите просматривать и прикреплять к нему конечные данные. Если вы загружаете список и хотите его загрузить на прокрутку here is sample

Смежные вопросы