我想在Java中創建一個Android應用程序(使用最新的Eclipse,ADT和最新的Android SDK Ubuntu 11.10)。在線程內修改父類變量
我有下面螺紋它的父類的函數內:
new Thread(new Runnable(){
public void run(){
try{
list_items = rtm_instance.update_notes_list(list_items);
list_items.add("test");
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
list_items
和rtm_instance
是在其內該線程被寫入的類的成員變量。看來線程裏面的list_items
是父類中list_items
的線程點start()
的快照。
儘管rtm_instance.update_notes_list
按預期返回更新的備註列表,但對list_items
所做的更改似乎並未修改父類中的相同變量。修改list_items
無非是修改線程內的所述變量的副本。
我想修改也發生在父(UI)線程中,以便Android ListAdapter
檢測到這些並修改相應的ListView
。如何從上面發佈的子線程修改父線程變量list_items
?
謝謝!
易變的變量就像是每次由線程引用的東西..所以,如果你讓list_items易變,那麼它會更新 – ngesh 2011-06-14 11:34:01
@devA這並沒有幫助,使用'runOnUiThread'雖然工作。 – 2011-06-14 12:11:24