HandlerThread原理、使用实例

   2025-02-13 6930
核心提示:HandlerThread是一个带有Looper的线程类,它继承自Thread类并实现了Runnable接口。它的主要作用是为了方便在后台线程中执行一系

HandlerThread是一个带有Looper的线程类,它继承自Thread类并实现了Runnable接口。它的主要作用是为了方便在后台线程中执行一系列的任务,并且能够通过Handler与主线程进行通信。

HandlerThread的原理如下:

在HandlerThread内部创建一个Looper对象,并通过Looper.prepare()方法来初始化Looper对象。调用Looper.loop()方法启动Looper的消息循环机制,使得HandlerThread可以处理消息。在HandlerThread内部创建一个Handler对象,该Handler对象与HandlerThread绑定在一起,可以在HandlerThread内部处理消息。

使用实例如下:

public class MyHandlerThread extends HandlerThread {    private Handler mHandler;    public MyHandlerThread(String name) {        super(name);    }    @Override    protected void onLooperPrepared() {        super.onLooperPrepared();        mHandler = new Handler(getLooper()) {            @Override            public void handleMessage(Message msg) {                // 在HandlerThread中处理消息                // ...            }        };    }    public void sendMessage(int what) {        if (mHandler != null) {            mHandler.sendEmptyMessage(what);        }    }}

在主线程中使用MyHandlerThread:

MyHandlerThread handlerThread = new MyHandlerThread("MyHandlerThread");handlerThread.start();// 发送消息到HandlerThread中处理handlerThread.sendMessage(1);

在MyHandlerThread中,我们重写了onLooperPrepared()方法,在该方法中初始化了Handler对象,并将其与HandlerThread绑定在一起。然后,在外部可以调用sendMessage()方法向HandlerThread发送消息进行处理。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言