(94277247)
在不影响当前Activity使用的情况下在其他线程中处理特定工作 异步消息处理
Handler handler=new Handler()
Runable updateThread=new Runnable(){
public void run(){
handler.postDelayed(updateThread,3000); 在3000毫秒以后再将对象加入消息队列(不一定马上执行)
}
}
在start按钮的onClick方法中有一句
handler.post(updateThread); 在此处第一次将消息队列添加进了队列
在end按钮的onClick方法中
handler.removeCallbacks(updateThread);
将线程从队列中移除
消息队列 将消息添加入队列 然后从头取出一条消息处理
每个Handler都有一个与之关联的消息队列
步骤:
创建Handler对象
调用post方法将要执行的线程对象添加到队列中
将要执行的操作写在线程对象run方法中
在run方法内部执行postDelayed或post方法 使循环
Handler中有2个队列
1个线程队列
1个消息队列
Message msg=updateBarHandler.obtainMessage();
得到一个消息对象
msg有arg1,arg2变量(整型) 可用来简单存值 用这2个成员变量传递消息 优点是系统性能消耗较少
msg.arg1=i;
updateBarHandler.sendMessage(msg); 将msg加入到消息队列中
复写handler中的handleMessage方法(每当调用sendMessage加入消息队列,然后用该方法取出msg对象)
调用结束 removeCallbacks(updateThread) 将线程对象从队列中移除
执行过程:
点按钮 执行onClick中的方法
通过post方法将线程加入到队列中
执行了线程中的run方法
通过obtainMessage获取msg对象 并给msg传值
调用sendMessage(msg)将消息加入消息队列
在handler的handleMessage方法中处理消息,并最后再将线程对象post到线程队列 形成循环
当调用removeCallbacks时 结束队列
---------------------------------------------------------------------------------------
分享到:
相关推荐
博客《AsnyncTask与handler(二)——handler消息机制》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/24783459
这个压缩包“安卓Android源码——HandlerLooper2.rar”可能包含了关于这些组件的深入分析和示例代码。以下是关于`Handler`、`Looper`和`MessageQueue`的详细解释: 1. **Handler**: - `Handler`是Android中的一个...
这个压缩包"安卓Android源码——HandlerMessage3.rar"很可能包含了关于这三者如何协同工作的示例代码或者详细分析。现在,我们将深入探讨这些概念及其在Android系统中的作用。 `Handler` 是一个用于发送和处理消息...
本资源"安卓Android源码——HandlerMessage2.rar"可能包含了关于`Handler`和`Message`的深入实践和示例代码,下面我们将详细探讨这些核心组件。 `Handler` 是 Android 中用于在线程间传递消息的对象。它通常用于将...
在Android系统中,`Handler`、`Looper`和`MessageQueue`是三个核心组件,它们共同构成了Android消息处理机制,使得应用程序能够实现线程间的通信和异步任务执行。这个`HandlerLooper1.rar`文件可能包含了对这些概念...
在安卓(Android)开发中,`Handler`、`Message` 和 `Looper` 是三个非常重要的组件,它们共同构成了安卓的异步消息处理机制。这个机制是安卓系统中处理UI线程与后台线程通信的核心方式。`HandlerMessage1.rar` 文件...
www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 Handler ProgressBarHandler(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)
这份名为“安卓笔记——安卓详细笔记汇总”的资源,无疑是安卓开发者或者学习者的重要参考资料。以下将对这个压缩包中可能包含的知识点进行深入解析。 首先,Android系统是基于Linux内核的开源操作系统,广泛应用于...
www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 Handler HandlerTest(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)
www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 Handler HandlerTest2(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)
【NS2初学笔记——非常经典】 NS2(Network Simulator 2)是一个广泛使用的网络模拟器,主要用于研究和分析网络协议、性能和行为。对于初学者来说,掌握NS2的基本概念和思想至关重要。以下是根据标题和描述提炼出的...
总之,这份"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. **异步处理**:考虑...
|—— |—— handler —— 异常捕获统一处理 |—— |—— result —— json返回结果 |—— |—— util —— 工具类 |—— model |—— |—— base —— pojo的父类 |—— |—— dao —— 持久层 |—— |—— domain ...
【火星(Mars)视频教程源码全集】是一份专为学习者设计的资源,旨在帮助他们深入了解和掌握Android应用开发的相关技能。这个压缩包包含了一系列与Android应用开发相关的项目源码,覆盖了多个关键知识点,对于想要...
在本篇“Netty4.0学习笔记系列之二:Handler的执行顺序”中,我们将深入探讨Netty中的Handler处理链以及它们的执行流程。 首先,Netty 中的 ChannelHandler 是处理 I/O 事件或拦截 I/O 操作的核心组件。每个 ...