Android Looper和Handler

news/2024/6/3 17:45:36 标签: linux, stm32, 物联网

Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。

Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进行处理,例如更新UI等。

MessageQueue:消息队列,用来存放Handler发送过来的消息,并按照FIFO规则执行。当然,存放Message并非实际意义的保存,而是将Message以链表的方式串联起来的,等待Looper的抽取。

Looper:消息泵,不断地从MessageQueue中抽取Message执行。因此,一个MessageQueue需要一个Looper。

Thread:线程,负责调度整个消息循环,即消息循环的执行场所。

Android系统的消息队列和消息循环都是针对具体线程的,一个线程可以存在(当然也可以不存在)一个消息队列和一个消 息循环(Looper),特定线程的消息只能分发给本线程,不能进行跨线程,跨进程通讯。但是创建的工作线程默认是没有消息循环和消息队列的,如果想让该 线程具有消息队列和消息循环,需要在线程中首先调用Looper.prepare()来创建消息队列,然后调用Looper.loop()进入消息循环。 如下例所示:

class LooperThread extends Thread {
      public Handler mHandler;

      public void run() {
          Looper.prepare();

          mHandler = new Handler() {
              public void handleMessage(Message msg) {
                  // process incoming messages here
              }
          };

          Looper.loop();
      }
  }

这样你的线程就具有了消息处理机制了,在Handler中进行消息处理。


http://www.niftyadmin.cn/n/845529.html

相关文章

笔记13:File 类的一些操作

一、对文件的创建(create) 1 private void button1_Click(object sender, EventArgs e)2 {3 File.Create("F:\\QQPCmgr\\Desktop\\新创的.txt");4 MessageBox.Show("创建成功!"…

iOS边练边学--NSURLSession、NSURLSessionTask的介绍与使用以及url中包含了中文的处理方法...

一、NSURLSession、NSURLSessionTask的使用步骤 首先创建NSURLSession对象通过NSURLSession对象创建对应的任务<1>NSURLSessionDataTask的GET和POST -- 以及url中包含了中文的解决办法 <2>NSURLSessionDownloadTask实现小文件的下载 <3>NSURLSessionDownloa…

Linux内核函数之fork函数

Linux内核函数之fork函数 Linux内核函数之fork函数-BugMan-ChinaUnix博客 Linux内核函数之fork函数-总结 Linux内核函数之fork函数-总结-BugMan-ChinaUnix博客 Linux内核之execve函数 Linux内核之execve函数-BugMan-ChinaUnix博客

NAND和NOR flash的区别

NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术&#xff0c;彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着&#xff0c;1989年&#xff0c;东芝公司发表了NAND flash结构&#xff0c;强调降低每比特的成本&#xff0c;更高的性…

抽奖之手机大转盘

直接看效果点这里 HTML <!DOCTYPE html> <html> <head><meta charset"utf-8"><meta content"widthdevice-width, initial-scale1.0, minimum-scale1.0, maximum-scale1.0, user-scalableno" name"viewport" /><…

STM32 (Cortex-M3) 中NVIC(嵌套向量中断控制)的理解

一、STM32 (Cortex-M3) 中的优先级概念 STM32(Cortex-M3)中有两个优先级的概念&#xff1a;抢占式优先级和响应优先级&#xff0c;也把响应优先级称作“亚优先级”或“副优先级”&#xff0c;每个中断源都需要被指定这两种优先级。 1. 何为占先式优先级(pre-emption prio…

ROM、RAM、DRAM、SRAM、FLASH的区别

ROM和RAM指的都是半导体存储器&#xff0c;ROM是Read Only Memory的缩写&#xff0c;RAM是Random Access Memory的缩写。ROM在系统停止供电的时候仍然可以保持数据&#xff0c;而RAM通常都是在掉电之后就丢失数据&#xff0c;典型的RAM就是计算机的内存。 RAM有两大类&#xff…

二叉搜索树的前驱节点和后继节点

前驱结点&#xff1a;节点val值小于该节点val值并且值最大的节点 后继节点&#xff1a;节点val值大于该节点val值并且值最小的节点 二叉树的节点val值是按照二叉树中序遍历顺序连续设定。前驱结点 如图4的前驱结点是32的前驱结点是16的前驱结点是5 后继节点 7的后继结点是8…