Каков наилучший подход для запроса нескольких вызовов RESTful в одном действии

1

У меня есть активность с несколькими прядильщиками. Два значения/данных прядильщиков должны быть заполнены из данных, которые я извлекаю из Интернета через службу RESTful. Данные находятся в формате JSON и довольно простые.

Я подумал об использовании AsyncTask, а в doInBackground выполнил два вызова веб-службы, которые будут заполнять два разных HashMaps, но я не уверен, что это лучший подход в отношении проектирования для производительности.

Есть ли другой способ приблизиться к этой ситуации? Может быть, есть служба, которая извлекает данные при запуске приложения и кэширует его локально?

Ваши предложения будут оценены.

Теги:
performance

3 ответа

4

Вероятно, вы захотите использовать два разных экземпляра AsyncTask, чтобы запросы выполнялись параллельно.

Если ваши данные должны быть сохранены, вы можете сохранить их в базе данных sqlite или сохранить json String в SharedPreferences. Использование Service отлично звучит.

  • 0
    Если я использую два AsyncTask, в которых onPostExecute я должен запустить мое новое действие, так как нет гарантии, что первое задание будет выполнено раньше, чем второе?
  • 0
    Вам, вероятно, нужно отслеживать, когда каждый из них заканчивается, чтобы вы могли выполнять действия, когда они оба закончили.
0
0

Также, если вы просто хотите кэшировать его локально в течение текущей текущей программы (и не нужно беспокоиться о ее сохранении при завершении работы программы), вы можете создать простой глобальный кеш-кеш-кеш, который позволяет синхронизировать доступ к ваши данные.

Что касается фактического получения самих данных, AsyncTask, вероятно, лучший способ (если он еще не кэширован). Выполните выборку в методе doInBackground() и выполните разбор/сохранение в методе onPostExecute().

Ещё вопросы

Сообщество Overcoder
Наверх
Меню