Handler主要用于异步消息的处理,发送消息与处理消息不是同时进行,用于处理相对耗时较长的操作
Handler在默认情况下 与调用它的Activity是处于同一线程的
post()方法其实相当于直接执行了线程的run方法 而不是调用Thread.start()
因此其实2者还是处于同一线程
可以通过Thread.currentThread().getId()来验证
当用标准Java实现线程(通过一个Runnable对象创建Thread)
2者是处于不同的线程(同样可通过getId验证)
关于Bundle对象(以String为键 其他数据类型为值的Map 和HashMap类似)
特殊的Map(键值类型固定 而非Object)
Android中另开线程
Looper 一般不用自己实现
HandlerThread类 实现了循环处理消息的功能
步骤
new一个HandlerThread对象
调用HandlerThread对象的start方法
创建MyHandler对象(继承Handler类),使用Looper对象(handlerThread.getLooper())
创建Message对象msg(myHandler.obtainMessage方法获得)
调用msg.sendToTarget();(发送到生成msg对象的Handler)
在msg上绑定数据 有msg.arg1 arg2 也可以msg.object这些传递简单数据
当传递比较大的数据时 就用msg.setData(Bundle data)方法
Bundle b=new Bundle();
b.putXXX来存值
在handleMesage方法中,用getData取得Bundle对象
再通过getXXX方法取得相应的值
注意 在调用getLooper方法前 必须先启动HandlerThread.start方法 否则取不到Looper对象
分享到:
相关推荐
这个压缩包“安卓Android源码——HandlerLooper2.rar”可能包含了关于这些组件的深入分析和示例代码。以下是关于`Handler`、`Looper`和`MessageQueue`的详细解释: 1. **Handler**: - `Handler`是Android中的一个...
本资源"安卓Android源码——HandlerMessage2.rar"可能包含了关于`Handler`和`Message`的深入实践和示例代码,下面我们将详细探讨这些核心组件。 `Handler` 是 Android 中用于在线程间传递消息的对象。它通常用于将...
这个压缩包"安卓Android源码——HandlerMessage3.rar"很可能包含了关于这三者如何协同工作的示例代码或者详细分析。现在,我们将深入探讨这些概念及其在Android系统中的作用。 `Handler` 是一个用于发送和处理消息...
博客《AsnyncTask与handler(二)——handler消息机制》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/24783459
在Android系统中,`Handler`、`Looper`和`MessageQueue`是三个核心组件,它们共同构成了Android消息处理机制,使得应用程序能够实现线程间的通信和异步任务执行。这个`HandlerLooper1.rar`文件可能包含了对这些概念...
www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 Handler ProgressBarHandler(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)
2. **post() 和 sendMessage()**:这两个方法是向 `Handler` 发送 `Message` 的常用方式,区别在于 `post()` 可以直接传递一个 `Runnable` 对象,而 `sendMessage()` 需要创建 `Message`。 3. **handleMessage()**:...
这份名为“安卓笔记——安卓详细笔记汇总”的资源,无疑是安卓开发者或者学习者的重要参考资料。以下将对这个压缩包中可能包含的知识点进行深入解析。 首先,Android系统是基于Linux内核的开源操作系统,广泛应用于...
www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 Handler HandlerTest2(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)
【NS2初学笔记——非常经典】 NS2(Network Simulator 2)是一个广泛使用的网络模拟器,主要用于研究和分析网络协议、性能和行为。对于初学者来说,掌握NS2的基本概念和思想至关重要。以下是根据标题和描述提炼出的...
www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 Handler HandlerTest(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)
总之,这份"Android开发笔记——模拟器、应用教程"将引导你全面了解Android开发的核心技术和实践方法,无论你是初学者还是经验丰富的开发者,都可以从中受益。通过学习和掌握这些知识点,你将能够创建出高质量、适应...
在这个"ASP.NET源码——利用handler生成静态页面的完整解决方案.zip"压缩包中,我们可以看到一个利用ASP.NET Handler(HttpHandler)来生成静态HTML页面的实践案例。 Handler在ASP.NET中扮演着处理特定HTTP请求的...
《Mars老师视频源代码详解——深入Android编程实践》 Mars老师的视频源代码是一份宝贵的教育资源,专注于Android平台的开发。这份源代码是Mars老师在教学过程中使用的实例,旨在帮助学习者深入理解Android应用的...
6. **UI交互**:在视频教程中,Mars老师可能会演示如何将WiFi功能与用户界面结合,例如,创建一个列表显示扫描到的网络,用户可以选择并连接。这涉及到`ListView`、`Adapter`等组件的使用。 7. **异步处理**:考虑...
【火星(Mars)视频教程源码全集】是一份专为学习者设计的资源,旨在帮助他们深入了解和掌握Android应用开发的相关技能。这个压缩包包含了一系列与Android应用开发相关的项目源码,覆盖了多个关键知识点,对于想要...
|—— |—— handler —— 异常捕获统一处理 |—— |—— result —— json返回结果 |—— |—— util —— 工具类 |—— model |—— |—— base —— pojo的父类 |—— |—— dao —— 持久层 |—— |—— domain ...
本篇笔记主要聚焦于Xamarin中的Android Handler异步消息处理机制,这是Android UI线程与后台工作线程之间通信的关键技术。 一、Android线程模型 Android系统规定,所有的UI操作必须在主线程(也称为UI线程)中进行...