2,在Runnable的run方法中使用Message.obtain()或者Message对象,传参,然后用主线程中的myHandler.sendMessage(message)来发送message
3,主线程创建new Handler()对象去处理message。这样就可以把子线程中的数据传递到主线程中来处理
/
Handler类的handeMessage()方法是在主线程中执行的,所以可以执行UI更新操作。
流程:在子线程中通过_handler.sendMessage(message)发送消息,然后系统自动回调Handler类的handleMessage()方法,这个方法是在主线程中执行的,所有可以操作UI控件。
Class CMyHandler extends Handler{
public void handeMessage(Message msg){
.......
}
}
当Activity被关闭时系统会回调OnDestroy()方法,所以在protected void onDestroy(){
super. onDestroy();
添加自己的代码,可以在关闭Activity时做一些事。
}
另一个中线程间通信方式:
Class myThread extends Thread {
@override
public void run() {
_handler . post ( new runnable() { //post表示执行这个runnable的run方法
@override
public void run() {
代码区(此代码区是在主线程执行的)
}
} );
代码区2(此代码区2是在这个myThread线程中执行的)
}
}
为了让Activity关闭时不再执行_handler . post () ,可以在onDestroy()方法中使用_handler . removeCallbacks();