Правильный рабочий процесс для извлечения данных из Интернета и отображения в виде списка

1

Мне сложно понять, какой правильный рабочий процесс - загрузить json-данные и показать их в ListView. В настоящее время я использую AsyncTask для загрузки и анализа данных, которые показаны с помощью ArrayAdapter. Проблема заключается в том, что AsyncTask не пережить перезагрузку активности.

Поэтому мне интересно, являются ли услуги лучшим решением, но как передать данные в ArrayAdapter? Должен ли я всегда использовать db как средний уровень для хранения и извлечения данных?

Так что лучше? AsyncTask в сохраненном фрагменте или службе с использованием db?

благодаря

  • 0
    Я лично нашел способ ленивой загрузки Федора очень гибким для работы. На самом деле, я использую его, даже если в списке нет изображений для отображения. stackoverflow.com/a/3068012/450534
Теги:
android-asynctask
service

3 ответа

2
Лучший ответ

Я использую службу для поиска и хранения данных в формате sqlite db. После того, как служба сохранит данные (или если есть проблема), я запускаю трансляцию. Мои фрагменты/действия прослушивают эти определенные трансляции и затем действуют соответствующим образом.

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

0

Наиболее простым решением было бы вернуть вашу текущую AsyncTask в onRetainNonConfigurationInstance или использовать фрагмент с setRetainInstance (true).

Вы можете получить доступ к AsyncTask в inCreate с помощью getLastNonConfigurationInstance

0

Фактически это зависит от требования того, что именно требуется для деятельности и как долго могут отображаться данные, не ударяя службу снова.

Один из подходов к вышеупомянутой проблеме - получить доступ к данным json и сохранить их в базе данных. Теперь извлеките данные из базы данных и отобразите их в Activity. Теперь вы можете реализовать сервис для обновления данных по мере необходимости. Служба просто ударит по веб-службе и обновит ваш db-контент по мере необходимости.

  • 0
    Это один выстрел ... получить данные и отобразить .. Использование БД кажется пустой тратой времени. Я имею в виду удалить строки, вставить строки и извлечь их
  • 0
    Если это сценарий, вы можете объединить JSON в активы. У вас также может быть механизм для обновления содержимого JSON с помощью службы, которая взаимодействует с веб-службой и сохраняет ее в виде файла во внутренней памяти. Таким образом, у вас есть запасной механизм в случае обновления данных на веб-сервере. Надеюсь, это поможет.
Показать ещё 2 комментария

Ещё вопросы

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