Android HandlerThread 和 Looper

Android HandlerThread 和 Looper

HandlerThread 是一个包含一个 Looper 对象的线程。这个 Looper 对象可以用来创建多个 Handler 对象。注意 HandlerThread 和普通的线程没什么两样,Thread.start() 仍需被调用。

HandlerThread 的 getLooper() 方法返回和这个线程关联的 Looper 对象。如果这个线程还没被启动或者因为其他原因 isAlive() 方法返回 false,这个方法将返回一个空对象。如果这个线程已经被启动,这个方法将阻塞直到关联的 Looper 对象已经被初始化。

Looper 用于为一个线程运行消息循环。线程默认没有和自身关联的消息循环,如果要创建一个,就在要运行循环的线程中调用 prepare() 方法,然后调用 loop() 方法使其处理消息,直到循环停止。

和消息循环的大多数交互是通过 Handler 类完成。要了解 Android Handler 机制可阅读以前的文章 Android Handler 机制。

以下是实现一个和 Looper 关联的线程的典型例子,使用 prepare() 和 loop() 的分隔创建一个初始 Handler 去和 Looper 通信。

class LooperThread extends Thread {
    public Handler mHandler;
    
    public void run() {
        Looper.prepare();
        
        mHandler = new Handler() {
            public void hanldeMessage(Message msg) {
                // 在这里处理过来的消息
            }
        };
        
        Looper.loop();
    }
}

HandlerThread 和 Looper 的介绍到这里就结束了。

文章出处

Android HandlerThread 和 Looper

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值