概述
public class TestHandler extends Activity {
Button m_startbtn ;
Button m_endbtn;
MyThreadHandler m_threadHandler;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
System.out.println(Thread.currentThread().getId());
m_startbtn = (Button)findViewById(R.id.start);
m_startbtn.setOnClickListener(new StartOnClickListener());
new MyThread().start();
}
class StartOnClickListener implements OnClickListener
{
@Override
public void onClick(View v) {
//在主线程中获取子线程的message对象然后再发送
Message msg = m_threadHandler.obtainMessage(1,1,1,"主线程发消息了");
m_threadHandler.sendMessage(msg);
}
}
class MyThread extends Thread
{
@Override
public void run()
{
//创建该线程的Looper对象,用于接收消息
Looper.prepare();
//线程的looper创建的handler表示消息接收者是子线程
m_threadHandler = new MyThreadHandler(Looper.myLooper());
//循环从MessageQueue中取消息。
Looper.loop();
}
}
class MyThreadHandler extends Handler
{
public MyThreadHandler(Looper loop)
{
super(loop);
}
@Override
public void handleMessage(Message msg)
{
super.handleMessage(msg);
//消息处理
System.out.println("我是子线程的Handler,收到了消息:"+(String)msg.obj);
}
}
}
最后
以上就是潇洒红酒为你收集整理的主线程向子线程发送消息的全部内容,希望文章能够帮你解决主线程向子线程发送消息所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复