2011-07-04 38 views
0

我正在使用SimpleAdapter來填充ListActivity。從Google I/O視頻的「ListView世界」中可以清楚的知道,必須從UI線程調用notifyDataSetChanged()方法(用於SimpleAdapter)。但至於更新我的ListActivity中的ArrayList可以安全地從任何其他線程?SimpleAdapter - 將新數據添加到列表,但在哪個線程?

目前我使用非ui線程來更新我的ArrayList中的數據,然後從UI線程中調用notifyDataSetChanged()。這工作正常,我也可以動態更新SimpleAdapter。然而,我的應用程序的某些方面可能會導致它崩潰,並且在我的ListActivity處於焦點時發生。我只是在探索可能的異常原因,這是Google I/O視頻中提到的問題,這讓我不確定是否可以安全地從另一個線程更新ArrayList。

回答

0

根據源代碼,自適應不會對底層數據列表進行任何類型的同步,所以我認爲它只應從UI線程中更改。