`
isiqi
  • 浏览: 16710168 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

Handler和HandlerThread

阅读更多

Handler提供了一种异步消息处理的机制,当程序sendMessage后可以继续执行,而Handler对象则用handleMessage方法处理。

但是事实上。handler并没有真正的重新开启一个线程去处理,它还是使用的Activity所在的主线程,所以下面用HandlerThread和Looper来构建新线程。

1、HandlerThread继承于Thread,所以它本质就是一个Thread。区别在于它有个Looper成员变量。

2、Looper对象就是对消息队列以及队列处理逻辑的封装,也就是消息队列+消息处理循环。

注意:线程handlerThread必须启动了才能得到Looper对象。

分享到:
评论

相关推荐

    Looper、Handler与HandlerThread

    在Android开发中,Looper、Handler和HandlerThread是三个非常重要的组件,它们构成了Android消息处理机制的基础,用于在主线程中处理来自其他线程的消息。理解并熟练运用这三个组件,对于编写高效、响应迅速的...

    了解Android核心:Looper,Handler和HandlerThread

    在Android开发中,理解核心组件如Looper、Handler和HandlerThread对于构建高效且响应式的用户界面至关重要。这些组件共同协作,确保UI线程不被阻塞,从而提供流畅的用户体验。 首先,主线程(也称为UI线程)是...

    Thread、Handler和HandlerThread关系详解

    前几天看到一道面试题:Thread、Handler和HandlerThread有什么区别?,这个题目有点意思,对于很多人来说,可能对Thread和Handler很熟悉,主要涉及到Android的消息机制(Handler、Message、Looper、MessageQueue),...

    HandlerThread

    由于HandlerThread保持着对Looper和关联Handler的引用,如果Handler引用了Activity或Context,可能导致Activity无法正常销毁。因此,最好在Activity的`onPause()`或`onDestroy()`方法中移除Handler的引用。 8. **...

    HandlerThread,AsyncTask,Handler的一个小例子

    在"ProgressBarHandler"这个示例中,可能包含了如何使用HandlerThread、AsyncTask和Handler来更新进度条的代码。具体实现可能包括创建HandlerThread并启动,然后在新线程中执行任务,通过Handler发送消息到主线程...

    Android:Handler学习实例2(HandlerThread、Bundle传递参数)

    HandlerThread handlerThread = new HandlerThread("handler_thread"); //在使用HandlerThread的getLooper()方法之前,必须先调用该类的start()方法,否则获得的值为空值; handlerThread.start(); //创建...

    Android HandlerThread 全面解析

    通常,当我们需要创建一个新的工作线程来处理耗时任务时,需要手动初始化`Looper`和`Handler`,而`HandlerThread`则简化了这个过程,它内部已经创建了一个消息循环,可以方便地处理消息。 2. **`HandlerThread`的...

    XHandler:XHandler, handler的正确使用姿势与消息传递机制

    Looper,Handler和HandlerThread是Android解决异步编程问题的方法。 它们不是老派,而是一个精巧的结构,可在其上构建复杂的android框架。 Looper,Handler,HandlerThread是Android异步编程的基本解决方法。 ...

    HandlerThread的使用与自定义HandlerThread

    通常,当我们创建一个新的线程时,这个线程并没有内置的消息处理机制,而 `HandlerThread` 则在内部初始化了一个 `Looper` 对象,使得我们可以在该线程中通过 `Handler` 发送和处理消息。`Looper` 是 Android 中用于...

    Android Service那些事1

    Handler用于在不同的线程之间发送和处理消息,而HandlerThread则将线程和Looper结合起来,提供了一个方便的后台处理环境。 总结来说,本文主要介绍了Android Service的各种形态和应用场景,包括IntentService的异步...

    2018-06-Android上海面试准备1

    IntentService内部包含了ServiceHandler和HandlerThread,确保耗时操作不在主线程中执行。当你启动IntentService时,任务会在onHandleIntent方法中异步处理,每个任务都在独立的工作线程中依次执行,当所有任务完成...

    HandlerThread使用demo

    这个项目可能包括创建HandlerThread,创建Handler,以及在主线程和其他线程之间发送消息的代码。通过研究这个示例,开发者可以更深入地理解HandlerThread的工作原理和应用场景。 总之,HandlerThread是Android多...

    android-thread-producer-consumer-example:线程之间的ProducerConsumer模型示例

    在讲完Looper,Handler和HandlerThread一章之后,一位学生问我们如何将流数据(从传感器)从后台线程传递回主线程(UI)? 对于此用例, HandlerThread原因如下: 我们的后台线程只是在做一件事:读取传感器数据。...

    android HandlerThread 使用demo

    2. **创建Handler**:创建一个与`HandlerThread`的`Looper`关联的`Handler`,用于接收和处理消息。 3. **发送消息**:在需要执行后台任务的地方,使用`Handler`的`sendMessage()`或`post()`方法发送消息。 4. **处理...

    Android HandlerThread使用方法详解

    首先Handler和HandlerThread的主要区别是:Handler与Activity在同一个线程中,HandlerThread与Activity不在同一个线程,而是别外新的线程中(Handler中不能做耗时的操作)。 用法: import android.app.Activity; ...

    android-Handler的使用

    为了解决这个问题,Android 引入了 Handler 和 Looper 的概念。Handler 可以在子线程中创建,但它的实例通常与主线程关联,因为它需要在主线程中执行任务,以便安全地更新 UI。子线程通过调用 `sendMessage()` 或 `...

    android HandlerThread 实例

    2. **定时任务**:可以通过 `HandlerThread` 和 `Handler` 结合 `AlarmManager` 或 `ScheduledExecutorService` 来实现定时任务。 3. **广播接收器**:在广播接收器中,如果需要执行耗时操作,可以切换到 `...

    handlerthread学习demo

    `HandlerThread` 的工作原理与普通的线程有所不同,它结合了`Handler`、`Looper` 和 `MessageQueue`,使得开发者可以在单独的线程中处理消息,避免阻塞主线程,提高应用程序的响应速度。 描述中的"handlerthread做...

Global site tag (gtag.js) - Google Analytics