Как правильно загрузить и обновить ListView постепенно? - PullRequest
0 голосов
/ 15 июня 2011

В настоящее время у меня есть служба, которая загружает около 500 записей довольно сложных данных, когда пользователь запрашивает обновление или срок действия кэшированных данных истекает, служба загружает данные и кэширует их в базе данных.В упражнении, где отображается список, я слушаю трансляции из сервиса о ходе загрузки.Каждый раз, когда я получаю статус прогресса, я запускаю:

mAdapter.getCursor().requery();

Я вижу, что мои данные постепенно заполняют ListView в процессе загрузки, что приятно ... Но у меня есть две большие проблемы.

  1. Мое решение кажется очень сложным и грязным.
  2. Это решение не будет работать на Android 3.0 и более поздних версиях.

Я ищу отзывы о том, как лучше к этому подойти.Должен быть лучший способ.

Ответы [ 2 ]

1 голос
/ 16 июня 2011

Если вы беспокоитесь об использовании requery() и альтернативы для Android 3.0, см. Примечание об устаревании в документации CursorAdaptor, в котором объясняется использование LoaderManager и CursorLoader в качестве альтернатива.

Исходя из вашего объяснения требований вашего приложения, то, как вы это делаете, вероятно, самый идиоматический подход, и я бы не стал называть его "грязным". Кажется, прямо вперед для меня.

0 голосов
/ 15 июня 2011

Я бы предложил предоставить экран загрузки при обновлении пользователя, вместо того, чтобы постепенно заполнять ваш список. Это кажется мне чище. В любом случае вам придется запрашивать курсор, будь то постепенно или в конце, поэтому не знаете, какая часть, по вашему мнению, могла бы использовать улучшение.

...