HandlerThread

1.HandlerThread 首先它是Thread,继承自Thread

java 复制代码
public class HandlerThread extends Thread {}

2.与Thread不同的地方

在Thread的run方法里面

  • 调用Looper.prepare()创建Looper
  • 调用Looper.loop(),可循环处理消息
java 复制代码
public class HandlerThread extends Thread {
    @Override
    public void run() {
        mTid = Process.myTid();
        Looper.prepare(); //创建Looper
        synchronized (this) {//锁
            mLooper = Looper.myLooper();
            notifyAll();
        }
        Process.setThreadPriority(mPriority);
        onLooperPrepared();
        Looper.loop(); //循环处理收到的Message
        mTid = -1;
    }
}

3.怎么使用,举个例子

java 复制代码
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Message;

public class MyHandlerThreadExample {

    private HandlerThread handlerThread;
    private Handler handler;

    public MyHandlerThreadExample() {
        // 创建一个名为"MyHandlerThread"的新线程
        handlerThread = new HandlerThread("MyHandlerThread");
        handlerThread.start(); // 启动线程

        // 在新线程上创建一个Handler
        handler = new Handler(handlerThread.getLooper()) {
            @Override
            public void handleMessage(Message msg) {
                // 在这里处理消息
                // 这个方法在 handlerThread 所在的线程上执行
                int what = msg.what;
                switch (what) {
                    case 1:
                        // 处理消息类型为1的情况
                        break;
                    // 添加其他处理不同消息类型的逻辑
                }
            }
        };
    }

    // 在主线程或其他地方发送消息到HandlerThread
    public void sendMessageToHandlerThread(int messageType) {
        Message message = handler.obtainMessage(messageType);
        handler.sendMessage(message);
    }

    // 在适当的时候停止HandlerThread
    public void stopHandlerThread() {
        handlerThread.quit();
    }
}
相关推荐
空中海16 分钟前
安卓逆向03. 动态调试、抓包分析与 Frida Hook
android
一起搞IT吧1 小时前
相机Camera日志实例分析之二十:相机Camx【照片后置4800/5000/6400万拍照】单帧流程日志详解
android·嵌入式硬件·数码相机·智能手机
jinanwuhuaguo2 小时前
(第三十三篇)五月的文明奠基:OpenClaw 2026.5.2版本的文明级解读
android·java·开发语言·人工智能·github·拓扑学·openclaw
千码君20164 小时前
Trae:一些关于flutter和 go前后端开发构建的分享
android·flutter·gradle·android-studio·trae·vibe code
重生之我是Java开发战士7 小时前
【MySQL】事务 & 用户与权限管理
android·数据库·mysql
怣疯knight9 小时前
Windows不安装 Android Studio如何打包安卓软件
android·windows·android studio
ke_csdn9 小时前
从Java演变到Kotlin下的jet pack
android
wenzhangli710 小时前
在低代码设计中践行 Harness Engineering
android·低代码·rxjava
xingpanvip11 小时前
星盘接口开发文档:组合三限盘接口指南
android·开发语言·前端·python·php·lua
TechMix11 小时前
【fkw学习笔记】Android 13 AOSP 源码添加系统预置应用实战指南
android·笔记·学习