我想在啓動HttpClient的函數上實現一個線程,因爲它是根據d.android.com推薦的所以我已經實現了一個線程,但它似乎沒有運行,就好像我刪除線程代碼,我看到的結果。無法在Android中正確實現我的線程
這是我的代碼:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.chat_box);// sd
TextView inbox = (TextView) findViewById(R.id.inbox);
final Functions function = new Functions();
final SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(getBaseContext());
where = prefs.getString("chat", "null");
class SendThread extends Thread {
public void run(){
//getInbox() runs an http client
listOfMessages = function.getInbox(where);
}
}
SendThread sendThread = new SendThread();
sendThread.start();
inbox.setText(listOfMessages);
}
就像我上面說的,如果我刪除我的線程代碼,然後將它完美的作品。關於我在做什麼的任何想法都是錯誤的?這是我第一次使用線程,對於任何新秀錯誤感到抱歉。
我沒有收到任何錯誤(至少我沒有看到任何錯誤),但是,我沒有看到沒有插入線程代碼的情況下得到的輸出。
不要(嘗試)從不是UI線程的線程更改UI。另外,'inbox.setText(listOfMessages)'可能在'listOfMessages = function.getInbox(where);'之前執行。 – 2012-04-25 00:36:17
它如何執行?我應該如何改變用戶界面,我正在盡力不要觸及任何觀點。 – EGHDK 2012-04-25 00:43:52