您的位置:首页 > 移动开发 > Android开发

android 线程小笔记2

2016-07-17 14:50 435 查看
线程进行多处理的选择。

实现线程的3种写法:

1.新建类去继承Thread:

public class MyThread extends Thread {

@Override
public void run() {
//实现的逻辑
}
}

//调用方法: new MyThread().start();


2.新建类实现Runnable接口:

public class MyThread implements Runnable{

@Override
public void run() {

}
}

//调用方法: new Thread(new MyThread()).start();


3.匿名类实现:

new Thread(new Runnable() {
@Override
public void run() {
//代码
}
}).start();


创建线程后,调用start()方法,run()方法就会运行。

线程异步消息处理机制:

线程中无法实现ui的操作,所以通过异步消息处理机制实现ui操做在主线程操作。

例子:(来自第一行代码)

public class MainActivity extends Activity {

private Button btn;

private TextView textView;

private Handler handler = new Handler(){

//重写handleMessage方法,里面实现ui的操作
@Override
public void handleMessage(Message msg) {
textView.setText("change");
}
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

btn = (Button) findViewById(R.id.btn);
textView = (TextView) findViewById(R.id.txv);

btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
new Thread(new Runnable() {
@Override
public void run() {
Message message = new Message();
message.what = 1;		//message 的标志,handleMessage()中可以通过标准识别message
handler.sendMessage(message);

}
}).start();
}
});

}
}


此外,message还有arg1,arg2来携带整形参数,obj携带一个Object对象。

PS:很多时候自己忘了写现线程后面的.start()导致。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息