2010-08-29 2 views
0

У меня есть вид списка, все элементы списка (Текст) необходимо обновить с помощью веб-службы. Мое приложение может запросить веб-службу для извлечения всех элементов списка за один раз или может запросить выбор одного элемента списка за раз. У меня есть следующие запросы 1) Если я запрашиваю веб-службу для извлечения всех элементов списка сразу, для загрузки и отображения ее в списке требуется около 15 секунд. Пользователь может подумать, что приложение не отвечает. 2) Если я запрашиваю веб-службу для каждого элемента списка, когда пользователь прокручивает вверх или вниз несколько запросов. Поэтому я загружаю элементы, которые пользователь, возможно, не видит. если список прокручивается.View Design Pattern

Пожалуйста, предложите хороший шаблон для такого сценария.

ответ

1

Что вы можете сделать, это иметь следующие

  • Фоновый Android service который загружает свежие элементы из веб-сервиса в заданные интервалы времени
  • SQLite базы данных, и в соответствии ContentProvider, которая хранит/извлекает элементы из DB
  • список деятельности, которая возвращает курсор на элементы из зарегистрированного ContentProvider вы написали

В основном фоновое обслуживание будет хранить элементы в локальном sqlite db через ContentProvider, который вы пишете. Затем действие будет извлекать курсор в элементы, снова через ContentProvider.

Это дает преимущество, которые

  • это будет быстро, работа с курсорами и стандартными механизмами
  • пользователей будут по-прежнему видеть предметы также, если они temporaneously свободных соединения
  • список будет автоматически обновляться пункты, зарегистрированные в качестве наблюдателя на ContentProvider
+0

Рассмотрите следующий прецедент. Если у меня есть список из 100 предметов. Я начинаю загрузку элемента списка, начиная с вершины, но пользователь немедленно прокручивается в нижнюю часть списка. Пользователь должен подождать, пока запрос 100-го элемента не поступит в веб-службу. – SpunkerBaba

+0

Лично, принимая во внимание, что для загрузки всех элементов из веб-службы требуется до 15 секунд, я бы загрузил их ВСЕ в фоновом режиме, но не во время прокрутки списка. Не должно быть проблемой. Загрузка во время прокрутки резко влияет на производительность. – Juri