Обновление содержимого MergeAdapter - PullRequest
0 голосов
/ 30 августа 2011

У меня есть довольно изящный MergeAdapter, который содержит несколько пользовательских представлений и несколько пользовательских ListAdapter.Этот MergeAdapter управляет ListActivity, который отображает содержимое, которое обновляется каждые x секунд.

В настоящее время я просто создаю новый MergeAdapter, создаю и добавляю все мои пользовательские представления (включая несколько ImageViews) - и вызываю setAdapter наListView в моей деятельности.

После примерно 10 минут обновлений у меня заканчивается свободное пространство и происходит сбой.

В конечном итоге, потому что добавляется новый ImageView, и выдается следующее исключение:

Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget

С более простыми адаптерами (такими как ArrayAdapter) я бы просто обновил набор данных и вызвал

notifyDataSetChanged()

на адаптере.

Есть ли подобное / рекомендованноеподходить для «обновления» MergeAdapter?Или я должен просмотреть содержимое потенциально сложного MergeAdapter и обновить отдельные представления?

1 Ответ

0 голосов
/ 30 августа 2011

Есть ли подобный / рекомендуемый подход для "обновления" MergeAdapter?

notifyDataSetChanged() работает, AFAIK.Текущий MergeAdapter имеет код, позволяющий смещать любые изменения от ListAdapters внутри него до того, что имеет зарегистрированный интерес к изменениям в MergeAdapter.Вероятно, это не было достаточно проверено, поэтому, если у вас есть пример приложения, демонстрирующего обратное, опубликуйте ссылку на него или отправьте его мне (упомяните этот вопрос SO).

...