Как не уведомлять курсор очень часто после изменения данных URI - PullRequest
0 голосов
/ 03 февраля 2011

У меня очень распространенная ситуация: активность отображает ListView с данными из CursorAdapter (элементы из ленты), и ContentProvider уведомляет курсор об изменениях данных по его URI.

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

Мои идеи:

  1. Не уведомлять, запрашивать самостоятельно, например, каждую 1 секунду
  2. Сохранение времени уведомления в ContentProvider и уведомление, если оно старше 1 сек.

Есть ли общие решения этой ситуации?

Спасибо.

1 Ответ

0 голосов
/ 04 февраля 2011

Вероятно, вы должны обрабатывать уведомления и обновление адаптера в AsyncTask, чтобы интерфейс реагировал. В сочетании с правильным использованием bindView и newView вы, вероятно, обнаружите, что ваш пользовательский интерфейс намного более отзывчив. См. Перемещение создания курсора CursorAdapter в фоновый поток и Android CursorAdapters, ListViews и фоновые потоки для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...