初学者常见错误,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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章