主线程向子线程发送消息

 

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);

     }

    

    }

 

 

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值