Все данные, которые отображает мое приложение для Android, берутся из XML-файла. Я использую Volley для извлечения данных и SimpleXML для сопоставления данных XML с объектами с помощью пользовательского запроса Volley: SimpleXmlRequest
а>.
Каждый раз, когда я обновляю содержимое, он считывает весь файл XML и снова создает каждый отдельный объект, и у меня такое чувство, что это не лучший способ сделать это, потому что этот файл может быть довольно большим. Поэтому у меня есть несколько вопросов по этому поводу:
- Есть ли способ "подписаться" на файл XML, чтобы получить только добавленные в него новые элементы, избегать чтения всего файла каждый раз? Я знаю, что Volley может кэшировать, но здесь это не очень помогает.
- Можно ли сделать запрос SimpleXmlArray с использованием платформы SimpleXML? Поможет ли это? Потому что я действительно не хочу анализировать файл самостоятельно...
- Если нет, стоит ли переключиться с XML на Json, чтобы я мог использовать
JsonArrayRequest
, или мне все равно придется читать весь файл и обновлять каждый элемент? Я никогда не использовал его раньше. - Многие элементы из исходного файла отображаются в виде списка с помощью
RecyclerView
, но опять же, когда я обновляюсь, мне приходится удалять элементы, которые были раньше, и снова добавлять их все, так как я получаю все элементы сразу и, следовательно, не может использоватьRecyclerView.notifyDataSetChanged()
.
Я много читал, даже пока не обнаружил RxJava и RxAndroid, которые кажутся идеальными, но слишком сложно интегрировать в них Volley и SimpleXML... поэтому я надеюсь, что вы можете мне помочь :)
Спасибо!