android之Looper详解及api详细介绍,使用案例

详解Handler和Looper的关系 这几天在看android的Handler和Looper的用法,需然以前对于这两者的用法我已经很清楚了,但今天我本着深入了解的态度去关于两者的源代码。果不其然,里面真是大有文章啊,让我学到了很多东西,刻不容缓,于是马上写博客记录下来。。。(看来以后要多看点源代码咯~~~·)。 在例子开始前,我们来看一下google API对两者的解释: 先来看一下Looper这个类: 再来看一下h 阅读详情
Looper是用来为一个线程执行一个消息循环的,线程默认是没有循环消息与他们绑定到一块的,为了创建一个
,在线程中调用prepare()来运行这个循环,然后开始循环处理消息,知道这个循环结束。
大多数与消息循环交互是通过Handler()。
下面通过一个典型的线程循环的例子来说明,使用prepare()和loop()来创建一个handler来与
Looper交互。
  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();
      }
  }
  
  常用方法:
  loop()
  在线程中执行消息队列,在结束时通过调用quit()。
  
  prepare()
  
  为当前线程提供一个Looper.
  
  getMainLooper()
  
  返回当前应用程序中依赖主线程的looper,
  
  getThread()
  
  返回和looper相关联的线程。
  
  mylooper()
  
  返回和当前线程关联的looper,如果没有looper与当前线程关联,则返回null。
  
  myQueue()
  
  返回和当前线程相关联的消息队列,使用这个方法,必须确保当前线程与looper相关联。
  
  prepareMainLooper()
  
  初始化与主线程相关联的looper。
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
Android消息机制:Handler与Looper原理详解 在Android开发中,线程间通信是保证应用流畅运行的关键技术。消息机制通过Message、Handler、Looper和MessageQueue四大核心组件,实现了安全高效的跨线程通信。其工作原理是发送方将消息放入目标线程的消息队列,接收方通过事件循环不断处理队列中的消息。这种机制不仅解决了主线程不能执行耗时操作与子线程不能直接更新UI的矛盾,还为异步编程提供了基础框架。在性能优化方面,消息池复用、异步消息处理和内存泄漏防范都是开发者需要掌握的重点技术。典型应用场景包括UI更新、后台任务执行和跨进程通信等 阅读详情

相关推荐

Android 中Looper机制详解

在《Android 基于Handler 剖析消息机制》一文中,以 Handler 类为起点详细分析了异步通信,分析了Java 端Handler与LooperMessage之前的通信关系。框架如下:在Java 端的 Looper 中会创建一个 Java 端的 MessageQueue实例,并在loop() 函数中的死循环里通过 queue.next() 不停的获取监听到的下一个 Message,然后将其通过 dispatchMessage() 分发处理。详细看。

私房菜 5956

Android Looper简介

安卓Looper详解

qq_36063677的博客 3348

西门子 S7-200 SMART 系列六:手把手教你配置S7-200 SMART Modbus RTU

最新发表:https://www.ics-pedia.com/%e8%a5%bf%e9%97%a8%e5%ad%90-s7-200-smart-%e7%b3%bb%e5%88%97%e5%85%ad%ef%bc%9a%e6%89%8b%e6%8a%8a%e6%89%8b%e6%95%99%e4%bd%a0%e9%85%8d%e7%bd%aes7-200-smart-modbus-rtu%e5%ae%9e%e4%be%8b/

John_09040211的博客 3281

Android中的Looper类

android中的looper类的简介

看,好自为之的博客!!! 2075

一文搞定 GitHub SSH Key:生成、配置、好处全攻略

本文详细介绍了如何配置GitHub SSH Key,实现免密安全认证。主要内容包括:SSH协议的四大优势(免密登录、安全性高、稳定省心、支持自动化);Git身份配置步骤;检查本地SSH Key;生成RSA密钥对;添加密钥到SSH代理;复制公钥到GitHub;测试连接。配置完成后,开发者可通过SSH地址克隆仓库,实现push/pull全程免密操作。该方案显著提升Git使用效率,同时保障安全性,是开发者必备技能。

qq_62904883的博客 958

Qt6导入QtChart绘制图表(添加组件)

我在按照大佬们的说明添加QtChart时发现,我的电脑上并不能正确的添加QtChart并编译通过,所以在综合了两位大佬的说明又自己探索了一番后,正确编译通过,分享出来,以便同志们节省一些时间。

Nuaa0719301zyx的博客 2951

Android Looper用法及分析

对looper的了解,及其该类中各方法的介绍。

Qq2179344的博客 1884

ROS2机械臂实战:从基础控制到视觉抓取

本文详细介绍了ROS2机械臂从仿真环境搭建到视觉抓取的全流程实战指南。内容涵盖使用Gazebo搭建仿真环境、编写基础控制节点、集成视觉感知进行目标检测与坐标变换,并设计状态机逻辑实现自动化抓取。通过系统集成与联调,帮助开发者掌握ROS2机械臂开发的核心技能。

weixin_29197699的博客 450

【Android】Handler(四)Looper的相关知识点

Looper的相关知识点

每天不是在写bug就是在写bug的路上 1590

Arcgis中的模型构建器(ModelBuilder)技术之批量图层转KML

这段时间全省各地都在开展耕地流出图斑整改恢复工作,期间或多或少都需要村委会协助摸排举证,除了举证软件外,奥维、外业精灵等软件想必大家接触得也很多。这就经常需要我们转kmz文件给业主或者摸排人员,那么有没有什么方法在arcgis下快速批量转kmz文件呢,今天就介绍一下如何在模型构建器(ModelBuilder)构建批量图层转KML的模型。

weixin_44671081的博客 1325

ROS与深度相机入门教程:(1)Ubuntu16.04 在ROS中驱动Intel D435i深度相机

Intel在Github上开源了支持所有RealSense系列相机的SDK,包括了D400、SR300系列深度相机和T265双目跟踪相机,支持Linux、Windows、Mac OS以及Android,链接:https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md#installin...

m0_37957160的博客 2075

[M0]Android Native层Looper详解

前言 我们知道Java 层的Looper 的消息队列在没有消息处理的时候,会wait在MessageQueue.next() 函数里,对于MessageQueue.next() 函数是如何实现的wait,却是一知半解。而且Android Framework部分有很多在Native层使用Looper 监听文件描述符的用法,比如InputDispatcher等,了解Android Native 层Looper的实现,可以

Wan 5504

笔试题-2023-紫光展锐-数字芯片设计【纯净题目版】

笔试题-2023-紫光展锐-数字芯片设计【纯净题目版】

w0shishabi的博客 2923

Android 线程 Looper.prepare()、Looper.loop() 使用

优化项目过程中发现了一个很Low的问题,整理一下,备忘: 说问题之前先看下HandlerThread的定义 一个封装了looper的线程:   Looper用于封装了android线程中的消息循环,默认情况下一个线程是不存在消息循环(message loop)的,需要调用Looper.prepare()来给线程创建一个消息循环,调用Looper.loop()来

Delion 1万+

UNet 改进(19):与ASPP结合的图像分割模型

这个代码实现了一个改进版的UNet模型,在传统的UNet架构基础上,引入了ASPP模块来增强模型捕获多尺度上下文信息的能力。​​UNet主干网络​​:经典的编码器-解码器结构,带有跳跃连接​​ASPP模块​​:位于瓶颈层,用于提取多尺度特征。

2401_82355416的博客 879

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

ANDROID 线程 LOOPER.PREPARE()、LOOPER.LOOP() 使用

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33805743的博客 462

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Android Looper用法及原理

Looper是android为线程间异步消息通信提供的一种机制,利用Looper机制可以方便我们实现多线程编程时线程间的相互沟通。当然,如果不用Looper而采用其它的线程间通信方式(像管道,信号量,共享内存,消息队列等)也是一样的。Looper的实现是利用消息队列的方式,为用户封装了一层API,用户不需要考虑互斥加锁的问题,方便用户的使用。      Looper的使用方法:      如果

linghaidong的专栏 2万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

android looper定义,Android中的Looper的使用

8种机械键盘轴体对比本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?什么是LooperLooper用来把一个线程封装成Looper线程,因为新new出来的线程不是Looper线程.那么Looper线程有什么用呢,简单的讲,Looper线程可以接收其他线程发送的消息,并进行处理.在打造Looper线程之前,先学习一下Looper的API,主要有一下几个方法public static voi...

weixin_36208880的博客 1320

android looper定义,ANDROID 线程 LOOPER.PREPARE()、LOOPER.LOOP() 使用

优化项目过程中发现了一个非常Low的问题,整理一下。备忘:说问题之前先看下HandlerThread的定义 一个封装了looper的线程: Looper用于封装了android线程中的消息循环。默认情况下一个线程是不存在消息循环(message loop)的,须要调用Looper.prepare()来给线程创建一个消息循环,调用Looper.loop()来使消息循环起作用。从消息队列里取消息。处理...

weixin_32866779的博客 760

Android Looper总结

Looper用于封装了android线程中的消息循环,默认情况下一个线程是不存在消息循环(message loop)的,需要调用Looper.prepare()来给线程创建一个消息循环,调用Looper.loop()来使消息循环起作用,从消息队列里取消息,处理消息。 注:写在Looper.loop()之后的代码不会被立即执行,当调用后mHandler.getLooper().quit()后,

水兵的专栏 1037

Android中Looper简介

1) Looper类别用来为一个线程开启一个消息循环。默认情况下Android中新诞生的线程是没有开启消息循环的。(主线程除外,主线程系统会自动为其创建Looper对象,开启消息循环) Looper对象通过MessageQueue来存放消息和事件。一个线程只能有一个Looper,对应一个MessageQueue。 (2) 通常是通过Handler对象来与Looper交互的。Handler可看做是

878

Android Native Looper 机制

本文摘要: Android Native Looper机制通过epoll实现事件循环,核心功能包括休眠等待和事件处理。其实现要点如下: 初始化:Looper::prepare()调用epoll_create创建epoll实例 事件注册:addFd()封装epoll_ctl,将binder_fd/timerfd等注册到epoll 事件循环:pollAll()底层调用epoll_wait实现阻塞等待 回调处理:事件触发后通过event.data.ptr调用注册的回调函数 该机制通过eventfd+epoll实现

似霰的博客 846

Android Looper和Handler分析

android的looper和handler分析

Innost的专栏 5万+

Android 线程 Looper.prepare()、Looper.loop() Looper.prepare()和Looper.loop() —深入版

转载地址:http://blog.youkuaiyun.com/heng615975867/article/details/9193899 http://blog.youkuaiyun.com/heng615975867/article/details/9194219 Looper用于封装了android线程中的消息循环,默认情况下一个线程是不存在消息循环(message loop)的,需要调用Looper.

4284
上一篇: 同步和异步的区别及举例
下一篇: android之线程的使用(handler,messageQueue)
撒行地
博客等级 码龄17年 28粉丝 42原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值