返回介绍

HandlerThread

发布于 2025-03-09 17:00:22 字数 2272 浏览 0 评论 0 收藏 0

HandlerThread

版本:Android 3.1 r1

结构

继承关系

public class HandleThread extends Thread

java.lang.Object

java.lang.Thread

android.os.HandlerThread

类概述

用于方便的创建一个含有 looper 的线程类。looper 用来创建 handler 类。请注意,仍然需要调用 start() 方法。

构造函数

public HandlerThread (String name)

构造一个 HandlerThread

public HandlerThread (String name, int priority)

构造一个 HandlerThread

参数

priority 运行线程的优先级,这个值是由 Android.os.Process 提供而不是来自 java.lang.Thread.

公共方法

public Looper getLooper ()

这个方法返回与此线程相关的 Looper。如果该线程不能启动或是由于某种原因 isAlive() 方法返回 false,则这个方法返回 null,假如这个线程已经启动,那么此方法将阻塞,直到 looper 被初始化。

返回值

Looper

public int getThreadId ()

返回线程的标志。详见:Process.myTid()

public boolean quit ()

查看当前运行的 looper 是否已经退出。假如线程这未启动或者已经结束(即 getLooper() 方法返回 null),这个方法将返回 false。否则 looper 被要求退出并返回 true。

public void run ()

调用设置 Runnable 对象的 run() 方法。如果没有设置 Runnable,什么也不做。

受保护方法

protected void onLooperPrepared ()

如果需要在 Looper 循环之前执行一些设置,可明确继承该回调方法。

(译者注:如下代码:

void run() {

mTid = Process.myTid();

Looper.prepare();//创建一个 Looper 实例,并且存储在 ThreadLocal 中,ThreadLocal 中维护一个 HashMap,键是线程号

synchronized (this) {

mLooper = Looper.myLooper();//得到当前线程的 Looper,就是刚才 perpare 方法中创建并存储的那个 Looper 实例

Process.setThreadPriority(mPriority);

notifyAll();

}

onLooperPrepared();

Looper.loop();//开始轮询

mTid = -1;

补充

文章精选

Android 开发入门——handler 使用(二)

AsyncQueryHandler 研究

Thread 和 Looper 以及 Handler 和 Message 详解 Android 开发必读 [Android123]

android Thread HandlerThread Looper Message MessageQueue Handler 的关系

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文