Android中消息机制初探(创建一个可以接收消息的子线程)

Android开发者都应该知道的是为了提高用户体验,必须将耗时的操作放在子线程中处理,处理完毕之后发送消息给主线程,刷新UI界面。
那么子线程如何接收消息呢?
这里使用到Looper对象

    /**
     * 需要用到调用消息队列的方法
     * prepare();    为线程初始化消息队列
     * myLooper();   获取loop对象的引用
     * loop();       Looper.loop()调用是让线程消息队列开始运行,可以接受消息
     * quit();       退出消息队列,若线程没有其他操作也会随着消息队列的退出而退出
     */
```loop的API少且简单。现在开始来创建一个用于处理耗时作业的子线程





<div class="se-preview-section-delimiter"></div>

这里写代码片
“`

public class SonThread  extends Thread{
    private static final String threadTag="WORKING_THREAD";
    private Handler sonThreadHandler;
    private Looper sonThreadLooper;
    @Override
    public void run() {
        super.run();
        Looper.prepare();
        sonThreadLooper = Looper.myLooper();
        sonThreadHandler = new Handler(sonThreadLooper){
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                if (msg.what==1){
                    Log.e("主线程的消息===>", (String) msg.obj);
                }

            }
        };
        Looper.loop();


    }
    //主线程给子线程发送消息
    public void sendToSonThread(String message){
        if (sonThreadHandler!=null){
            Message msg = Message.obtain();
            msg.what=1;
            msg.obj = message;
            sonThreadHandler.sendMessage(msg);
        }
    }
    public void exit(){
        //关闭线程
        if (sonThreadLooper!=null){
            sonThreadLooper.quit();
        }
    }



}
代码通俗易懂,在子线程中创建消息循环,且创建一个用于操作消息队列中消息的Handler对象。既从消息队列取消息,也用于主线程主动向子线程发送消息。
来看看主线程如何发送消息
        son.sendToSonThread("享受技术,享受生活!");

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值