初學者常見錯誤,android的多線程更新UI

android的多線程

方法1

class MyThread extends Thread {}
new MyThread().start();

方法2

class MyThread implements Runnable {}
MyThread myThread = new MyThread();
new Thread(myThread).start();

非主線程更新UI

主線程通過handler接收message更新UI

public class MainActivity extends Activity implements OnClickListener {
    public static final int UPDATE_TEXT = 1; private TextView text;
    private Button changeText;
    private Handler handler = new Handler() {
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case UPDATE_TEXT:
                // 在這裏可以進行UI操作 
                text.setText("Nice to meet you"); break;
                default: break;
            } }
        };

其他線程通過handler發送message

public void onClick(View v) {
    switch (v.getId()) { 
        case R.id.change_text:
        new Thread(new Runnable() { 
            @Override
            public void run() {
                Message message = new Message(); message.what = UPDATE_TEXT;
                handler.sendMessage(message); // 將Message對象發送出去
            } }).start();
    break; default:
    break; }
    }
}
發佈了31 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章