我正在使用不同的Thread
來清除適配器的List
,有時我得到一個IndexOutOfBoundsException
。ListView和線程安全的自定義適配器
我想問題是在自定義適配器填充ListView
的進程中間的某個地方,第二個線程調用list.clear()
導致list.size()
返回0,從而導致某處出現界限。
如何使這個線程安全與同步(在這種情況下,這將解決它)?
//onCreate
fillList(list); // fills the list
new AsyncTaskSubclass().execute(); // clear the list on a different Thread
編輯:我認爲這個問題涉及的事實AsyncTask
被清除了ArrayAdapter
子類使用名單,有沒有辦法來改變適配器使用List
?
我正在從服務器獲取新數據,這就是爲什麼清單被重新填充到單獨的線程中。這個解決方案適用於這種情況嗎? –
不,它仍然引發異常 –