`
grass_dcm
  • 浏览: 41889 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

深入理解Android消息处理系统——Looper、Handler、Thread

阅读更多
摘自:http://www.th7.cn/Article/bc/Android/201102/20110227210039.html

通过上面的分析,我们可以得出如下结论:
1、如果通过工作线程刷新界面,推荐使用handler对象来实现。
2、注意工作线程和主线程之间的竞争关系。推荐handler对象在主线程中构造完成(并且启动工作线程之后不要再修改之,否则会出现数据不一致),然后在工作线程中可以放心的调用发送消息SendMessage等接口。
3、除了2所述的hanlder对象之外的任何主线程的成员变量如果在工作线程中调用,仔细考虑线程同步问题。如果有必要需要加入同步对象保护该变量。
4、handler对象的handleMessage接口将会在主线程中调用。在这个函数可以放心的调用主线程中任何变量和函数,进而完成更新UI的任务。
5、Android很多API也利用Handler这种线程特性,作为一种回调函数的变种,来通知调用者。这样Android框架就可以在其线程中将消息发送到调用者的线程消息队列之中,不用担心线程同步的问题。
深入理解Android消息处理机制对于应用程序开发非常重要,也可以让你对线程同步有更加深刻的认识。以上是最近Simon学习Android消息处理机制的一点儿总结,如有错误之处请不吝指教。
分享到:
评论

相关推荐

    Android 之 Looper、MessageQueue、Handler 与消息循环

    本篇文章将深入探讨Android中消息处理的核心组件——Looper、MessageQueue、Handler以及消息循环的工作原理。理解这些概念对于构建响应迅速、用户友好的应用程序至关重要。 #### 二、核心概念 ##### 1. Looper ...

    深入理解Android卷1全

    深入理解Android 卷1 不是扫描版的,是全版电子书的,非PDF,可编辑,各种阅览器以打开!包括书签和同步目录! 第1章 阅读前的准备工作 / 1 1.1 系统架构 / 2 1.1.1 Android系统架构 / 2 1.1.2 本书的架构 / 3 1.2 ...

    android——多线程

    标题"android——多线程"和描述"android——Handler与多线程应用范例"暗示我们将深入探讨如何在Android中使用Handler来管理多线程。 Android系统默认运行在一个单线程环境中,即主线程,也被称为UI线程。主线程主要...

    深入理解Android:卷I--详细书签版

     Android系统开发工程师常常需要深入理解系统的运转过程,而本书所涉及的内容可能正是他们在工作和学习中最想了解的。那些对具体模块(如Audio系统和Surface系统)感兴趣的读者 也可以直接阅读相关章节的内容。 ...

    Android Studio —— Thread

    本篇文章将深入探讨Android Studio中的线程管理,即“Thread”主题。 在Android应用开发中,线程是执行任务的基本单元。由于Android系统的主线程(UI线程)主要负责处理用户界面交互,因此,为了保持UI的流畅性,...

    android 应用 源代码——贪吃蛇

    5. **线程与定时器**:为了保证游戏流畅运行,通常会使用Handler和Looper机制或者单独的Thread(线程)来处理游戏逻辑。定时器(如TimerTask)则用来控制游戏的更新频率,比如每秒更新屏幕状态,确保蛇的移动和食物...

    Android Handler解析

    1. **Handler**:负责向消息队列发送消息和处理消息。 2. **MessageQueue**:存储由Handler发送的消息,等待Looper去循环读取并处理。 3. **Looper**:每一个线程中只有一个Looper实例,负责不断从MessageQueue中...

    Android应用源码之HandlerMessage2.zip

    Handler是Android系统中用于线程间通信的关键组件,它允许开发者在不同的线程之间发送和处理消息。Message对象是Handler用来传递信息的数据载体,而Looper则是负责在特定线程中循环地取出Message并交给Handler处理的...

    Android Handler线程间的调度

    首先,Handler是Android中的一个关键类,它允许开发者在不同的线程之间发送和处理消息。Handler的实例通常与特定的线程关联,当通过Handler发送一个Message时,这个Message就会被添加到与该Handler关联的Message...

    解析Google Android SDK——智能手机开发范例手册-下载代码

    由于Android主线程负责UI更新,所以后台任务通常通过IntentService、AsyncTask、Thread或Handler/Looper机制进行。理解这些机制能避免ANR(应用无响应)问题,提升应用性能。 “c9”和“c10”可能涉及更高级的主题...

    从现实生活中理解android线程消息机制.pdf

    无论哪种方式,接收和处理消息的Handler必须在同一线程中,否则会抛出异常。 总结起来,Android线程消息机制是通过Handler、Looper和Message的协同工作,实现线程间的异步通信和任务调度。理解并熟练运用这一机制,...

    安卓Android源码——抢滩登陆.zip

    这涉及到Android的Thread、AsyncTask或者Handler/Looper机制。 7. **音频与图形处理**:在游戏开发中,音频和图形处理是重要部分。Android提供了MediaPlayer和SoundPool处理音频,而2D图形通常通过Canvas和Paint类...

    安卓Android源码——蓝牙聊天的.zip

    【标题】:“安卓Android源码——蓝牙聊天的.zip”提供了Android平台上实现蓝牙聊天功能的源代码,这是一份深入理解Android蓝牙通信机制的宝贵资源。通过这份源码,开发者可以学习到如何在Android设备间建立蓝牙连接...

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

    ### Android高级开发面试题——Handler相关知识 #### 一、HandlerLooperMessage关系 **1. Handler、Looper与Message之间的关系** - **Handler**: 主要用于发送消息和处理消息。它作为一个桥梁,使得主线程和子...

    安卓Android源码——天天动听悬浮歌词源码.zip

    这涉及到Android的Handler、Looper和Thread的使用,以及异步任务的处理。 3. **动态加载歌词**:应用可能需要从网络或者本地资源中加载歌词,这涉及到HTTP请求、JSON解析(如果歌词数据以JSON格式存储)以及SQLite...

    Android线程结束——合理的结束你想结束的线程

    它们在主线程中处理消息和回调,如果在工作线程中使用了Handler,记得在结束线程前关闭Looper,以防止内存泄漏和资源占用。 总结,结束Android线程时,关键在于优雅、安全地中断操作,而不是简单粗暴地停止。合理的...

    Android多线程及异步处理问题详细探讨

    - Handler/Looper/Message:这是Android特有的异步处理机制,通过创建Handler,关联到特定线程的Looper,然后通过发送Message来执行异步任务。 3. 多线程核心机制——Handler/Looper/Message Handler、Looper和...

Global site tag (gtag.js) - Google Analytics