继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

(Handler),主线程向子线程传递Message的示例

慕尼黑0536602
关注TA
已关注
手记 37
粉丝 3
获赞 6
  1. 首先,咱定义一个handle1在主线程:(记住添加一个Button)

Handler handler1;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    initView();
    initEvent();
    handler1= new Handler();
    handler1.sendEmptyMessage(1000);

}

接着开辟一个子线程,再接受一个handleMessage:

new Thread(){
    @Override
    public void run() {
        Looper.prepare();
        super.run();
        handler1 = new Handler(){
            @Override
            public void handleMessage(@NonNull Message msg) {
                super.handleMessage(msg);
                Log.d("TAP","从UI中传来的handler值是:"+msg.what);
            }
        };
        Looper.loop(); //相当于产生了一个while(true){}
    }
}.start();


我们设置,当点击按钮的时候,把主线程的what传过去:

ui.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
       handler1.sendEmptyMessage(1000);
    }
});


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP