У меня есть активность с несколькими прядильщиками. Два значения/данных прядильщиков должны быть заполнены из данных, которые я извлекаю из Интернета через службу RESTful. Данные находятся в формате JSON и довольно простые.
Я подумал об использовании AsyncTask, а в doInBackground выполнил два вызова веб-службы, которые будут заполнять два разных HashMaps, но я не уверен, что это лучший подход в отношении проектирования для производительности.
Есть ли другой способ приблизиться к этой ситуации? Может быть, есть служба, которая извлекает данные при запуске приложения и кэширует его локально?
Ваши предложения будут оценены.
Вероятно, вы захотите использовать два разных экземпляра AsyncTask
, чтобы запросы выполнялись параллельно.
Если ваши данные должны быть сохранены, вы можете сохранить их в базе данных sqlite или сохранить json String
в SharedPreferences
. Использование Service
отлично звучит.
Эта статья может вам помочь:
Также, если вы просто хотите кэшировать его локально в течение текущей текущей программы (и не нужно беспокоиться о ее сохранении при завершении работы программы), вы можете создать простой глобальный кеш-кеш-кеш, который позволяет синхронизировать доступ к ваши данные.
Что касается фактического получения самих данных, AsyncTask
, вероятно, лучший способ (если он еще не кэширован). Выполните выборку в методе doInBackground()
и выполните разбор/сохранение в методе onPostExecute()
.