android 两个线程的交互

来源:互联网 发布:java执行cmd命令 参数 编辑:程序博客网 时间:2024/04/30 12:35

其中一个线程代码

lt=new LooperThread(this);//用于接收信息,其中定义了一个handle对象,用于发送和接收信息
lt.start();



new Thread(){ //开启线程通过bundle发送信息
public void run() {
for(int i=1;i<=10;i++)
{
String mString="计数器的值:"+i;
Bundle b=new Bundle();
b.putString("msg", mString);
Message message=new Message();
message.setData(b);
message.what=1;
lt.handler.sendMessage(message);
try {
Thread.sleep(3000);
} catch (Exception e) {
e.printStackTrace();
}
}
};
}.start();


下面是接收信息Thread实现

public class LooperThread extends Thread{
Handler handler;
public Context context;
public LooperThread(Context context){//用于获取上下文
this.context=context;
}
@Override
public void run() {   
Looper.prepare();//使用prepare建立消息队列
handler=new Handler(){
@Override
public void handleMessage(Message message) {
super.handleMessage(message);

switch (message.what) {
case 1:
Bundle b=message.getData();
String mString=b.getString("msg");
Toast.makeText(context, mString, Toast.LENGTH_SHORT).show();

break;


default:
break;
}
};



};
Looper.loop();//建立消息循环

}
}

0 0
原创粉丝点击