定义一个新线程
- 继承Thread
class MyThread extends Thread {
@Override
public void run(){
}
}
//调用实例
new MyThread().start();
- 继承Runnable接口
class MyThread implements Runnable{
@Override
public void run() {
}
}
//调用方法
MyThread myThread = new MyThread();
new Thread(myThread).start();
- 匿名类(最常见)
new Thread(new Runnable() {
@Override
public void run() {
}
}).start();
子线程更新UI
在子线程中更新UI会导致系统错误,所以需要创建一个handle来更新
private static final int UPDATE = 1;
private Handler handle = new Handler(){
public void handleMessage(Message msg){
switch (msg.what){
case UPDATE:
break;
default:
break;
}
}
};
//需要更新ui时,发送message
Message message = new Message();
message.what = UPDATE;
handle.sendMessage(message);
或是使用runOnUiThread方法。
还有通过类继承AsyncTask重写方法的方式,可以设置需要进度条的组件,不过现在Android好像不推荐这种方法了