`

关于Looper的说明

UI 
阅读更多

在主线程中获取looper时,通过Looper.myLooper()和Looper.getMainLooper()获取的looper一样,获取的都是UI主线程的looper;

在子线程中获取looper是,通过Looper.myLooper()和Looper.getMainLooper()获取的looper不一样,前者获取的是子线程的looper,且必须执行Looper.prepare()以获取消息队列,后者获取的是UI主线程的looper。

 

注:

1、凡想获取子线程的looper都必须先通过Looper.prepare()获取消息队列,而如果在UI主线程中不需要执行此操作,   因为主线程自动创建了消息队列;

2、不管是子线程还是主线程,都需要消息队列,只不过子线程的消息队列要自己创建,主线程已经自动创建,不需自己再创建。

 

分享到:
评论

相关推荐

    Looper物件之角色(Demo 5)

    我们将通过一个名为"Demo 5"的实例来具体说明。 首先,我们需要理解Looper的基本概念。Looper是Android中的一个类,它负责管理消息队列(MessageQueue)并持续不断地检查队列中是否有待处理的消息。一旦发现有新...

    Android应用源码之HandlerLooper2.zip

    以下是对这些核心概念的详细说明: 1. **Handler**: `Handler` 是一个用于在特定线程(通常是UI线程)中发送和处理消息的对象。通过创建`Handler`实例并调用其`post()`或`sendMessage()`方法,开发者可以在不同的...

    Android的Message机制(Handler、Message、Looper)

    下面通过一个简单的示例来说明这些组件是如何协作工作的: ```java class LooperThread extends Thread { public Handler mHandler; public void run() { Looper.prepare(); // 准备Looper环境 mHandler = ...

    Android中的Looper对象详细介绍

    Java 官网对Looper对象的说明: public class Looperextends ObjectClass used to run a message loop for a thread. Threads by default do not have a message loop associated with them; to create one, call ...

    Guitarix-Looper:使用Arduino控制Guitarix Looper

    您可能还想看一下他的自述文件,因为他的屏幕截图可能为您更好地说明了如何将Arduino Midi设备与Guitarix连接起来。它有什么作用该库使您的Arduino通过其USB端口在计算机上注册为Midi设备,以将MIDI命令发送到...

    了解Android核心:Looper,Handler和HandlerThread

    下面通过两个例子进一步说明如何使用Handler和HandlerThread: 1. 使用Thread创建主线程Handler: 在这个例子中,我们创建了一个新的Thread,并在其中创建了一个新的Handler实例(handler2)。然后,我们通过...

    looper-messenger:用于与 Looper 进行消息传递的交互式命令终端

    4. `README.md` 文件:提供项目介绍、使用指南和贡献说明。 深入到 "looper-messenger" 的实现,我们可以看到它如何利用 JavaScript 的异步特性来模拟 Looper 的工作流程。通过创建和管理消息对象,以及模拟消息...

    Android 高级开发面试题以及答案整理

    在创建`Handler`时,它会尝试获取当前线程的`Looper`实例(通过`Looper.myLooper()`),如果获取不到,则说明该线程尚未准备好接收消息处理任务。 **3. 主线程中为何不需要调用Looper.prepare()** 主线程(UI线程...

    looper-mobile:Looper 是一个用于移动触摸屏设备(包括智能手机和平板电脑)的可视化编程环境

    Looper 是一种用于移动触摸屏设备(包括智能手机和平板电脑)的可视化编程环境。 安装开发环境 安装 首先按照教程 。 安装 接下来,按照以下说明安装所需的插件。 首先,安装 HTTP Web 服务器: sudo phonegap ...

    Android中消息机制

    以下是对该机制中关键角色及其作用的详细说明。 **1. Looper** - **简介**:Looper负责管理特定线程内的Message Queue(消息队列)。每个线程只能有一个Looper实例。 - **功能**:Looper的主要职责是循环不断地从...

    线程消息传送机制源码

    这说明Handler必须在有Looper的线程中使用,例如主线程或自定义的worker线程。 2. `Looper.loop()`是消息循环的入口,它会不断从消息队列中取出Message并分发。这个过程会一直持续,直到消息队列为空并且没有新的...

    handler机制1

    下面是关于Handler机制的详细说明: 1. **Looper的准备**:`Looper.prepare()`方法会在当前线程中创建并初始化一个Looper对象。这个方法会确保每个线程只调用一次,因此在同一个线程中,只有一个MessageQueue被创建...

    raspi-looper:RaspBerry Pi的死人简单4轨道弯针

    raspi-looper 适用于Raspberry Pi的简单4轨循环器。 使用pyaudio。 可能使用USB声卡。 使用8个按钮(按一下连接)和8个LED触发并指示在4条轨道上的播放和录制。 每个按钮的一只脚都接地,每个LED的负极也都接地。 ...

    关于handler 的实例

    在`教程重要说明.txt`文件中,可能会详细讲解如何创建和使用Handler,包括如何在子线程中启动新任务,然后通过Handler将结果传递回主线程更新UI,以及避免因主线程阻塞导致的ANR(Application Not Responding)错误...

    对handler机制的回答

    接下来,我们将通过具体的步骤来详细说明`Handler`机制的工作流程: 1. **初始化Looper**:在应用程序启动之初,系统会在主线程中初始化`Looper`对象。这是通过调用`Looper.prepareMainLooper()`完成的。初始化完成...

    应用源码之HandlerMessage3.zip

    以下是一些关键知识点的详细说明: 1. **线程同步**:`Handler`机制是Android中的一种线程同步手段,它使得工作线程可以安全地向主线程发送任务,避免了多线程操作UI的冲突。 2. **异步处理**:通过`Handler`发送`...

    Android 中三种启用线程的方法总结

    首先说明Android的CPU分配的最小单元是线程,Handler一般是在某个线程里创建的,因而Handler和Thread就是相互绑定的,一一对应。 而Runnable是一个接口,Thread是Runnable的子类。所以说,他俩都算一个进程。 ...

    HandlerTest.zip

    - **JavaApk源码说明.txt**:这个文本文件可能包含了HandlerTest应用的源码简介,包括主要功能、实现原理和使用注意事项。开发者可以通过阅读这个文件来快速理解项目的整体架构。 - **下载更多打包源码~.url**:这...

    Handler消息处理机制+面试说.md

    3. **应用场景**:举例说明`Handler`在实际开发中的应用场景,比如子线程与主线程通信、定时任务、状态管理和消息分发等。 4. **注意事项**:最后提及一些使用`Handler`时需要注意的问题,例如在子线程中创建`...

    JavaApk源码说明.rar

    JavaApk源码说明是一个关于Java开发Android应用的资源包,包含了源代码示例和可能的解释文档。这个压缩包可能是为了帮助开发者理解和学习如何在Android平台上构建和设计应用程序。以下是一些相关的Java和Android开发...

Global site tag (gtag.js) - Google Analytics