android多线程

runOnUiThread

这个可以直接在子线程中调用,并且修改ui

public void change(final String a){
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            tv.setText(a);
        }
    });
}

多线程调用

new Thread(new Runnable() {
    @Override
    public void run() {
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        change("aaaaaaaaaaaa");
    }
}).start();

实现了五秒后更新


Handler

现在主线程中创建一个handler

final Handler handler = new Handler(){
    public void handleMessage(Message message){
        tv.setText(""+message.what);
    }
};

然后在子线程中调用handler.sendEmptyMessage(1);就能调用上面的handlemessage方法,传入的1是传入message的what属性,handler.sendMessage(message)方法发送这个message到主线程中的那个回调

new Thread(new Runnable() {
    @Override
    public void run() {
        try {
            Thread.sleep(5000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        handler.sendEmptyMessage(1);
    }
}).start();


xwm

还是一个菜鸟


Comments are closed.