Я создаю приложение, которое динамически заполняет/удаляет список массивов в зависимости от потока Futuretask, который взаимодействует с сервером.
Проблема в том, что когда я добавляю новый объект в свой адаптер массива и каким-либо образом вызываю notifyDataSetChanged или setNotifyOnChange
(например, после добавления элемента я также попытался создать некоторую функцию postadd, которая вызывает notifyDataSetChanged, или даже попытался добавить setNotifyOnChange в конструкторе адаптера или перед добавлением (adapter.setNotifyOnChange(true)))
в этой Futuretask он просто замораживает поток и вызывает сбои в работе приложения. Без уведомления об изменении, когда я провожу пальцем, чтобы вызвать метод getView() ArrayAdapter, он работает, но это нежелательное поведение.
Примечание. Я обращаюсь к адаптеру по ссылке на статическую переменную.
Примечание № 2: я не думаю, что создание нового адаптера снова и снова — разумный выбор.
/редактировать:
Мой метод удаления выглядит так:
public void remove (int itemid) {
for (ContactItem i : items)
if (i.ID == itemid)
items.remove(i);
}
(и зависает в итоге на последнем фарантесе)