`

Mars视频笔记——Handler

阅读更多

 

(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消息机制 ---源码

    博客《AsnyncTask与handler(二)——handler消息机制》对应源码,博客地址:http://blog.csdn.net/harvic880925/article/details/24783459

    安卓Android源码——HandlerLooper2.rar

    这个压缩包“安卓Android源码——HandlerLooper2.rar”可能包含了关于这些组件的深入分析和示例代码。以下是关于`Handler`、`Looper`和`MessageQueue`的详细解释: 1. **Handler**: - `Handler`是Android中的一个...

    安卓Android源码——HandlerMessage3.rar

    这个压缩包"安卓Android源码——HandlerMessage3.rar"很可能包含了关于这三者如何协同工作的示例代码或者详细分析。现在,我们将深入探讨这些概念及其在Android系统中的作用。 `Handler` 是一个用于发送和处理消息...

    安卓Android源码——HandlerMessage2.rar

    本资源"安卓Android源码——HandlerMessage2.rar"可能包含了关于`Handler`和`Message`的深入实践和示例代码,下面我们将详细探讨这些核心组件。 `Handler` 是 Android 中用于在线程间传递消息的对象。它通常用于将...

    安卓Android源码——HandlerLooper1.rar

    在Android系统中,`Handler`、`Looper`和`MessageQueue`是三个核心组件,它们共同构成了Android消息处理机制,使得应用程序能够实现线程间的通信和异步任务执行。这个`HandlerLooper1.rar`文件可能包含了对这些概念...

    安卓Android源码——HandlerMessage1.rar

    在安卓(Android)开发中,`Handler`、`Message` 和 `Looper` 是三个非常重要的组件,它们共同构成了安卓的异步消息处理机制。这个机制是安卓系统中处理UI线程与后台线程通信的核心方式。`HandlerMessage1.rar` 文件...

    android mars视频代码 Handler 源码 ProgressBarHandler

    www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 Handler ProgressBarHandler(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)

    安卓笔记——安卓详细笔记汇总

    这份名为“安卓笔记——安卓详细笔记汇总”的资源,无疑是安卓开发者或者学习者的重要参考资料。以下将对这个压缩包中可能包含的知识点进行深入解析。 首先,Android系统是基于Linux内核的开源操作系统,广泛应用于...

    android mars视频代码 Handler 源码 HandlerTest

    www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 Handler HandlerTest(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)

    android mars视频代码 Handler 源码 HandlerTest2

    www.mars-droid.com/Android开发视频教程 代码 源码 mars老师讲课 android 视频源码 Handler HandlerTest2(在此特别感谢mars的无私奉献,此代码为跟随视频边学边做的)

    ns2初学笔记——非常经典

    【NS2初学笔记——非常经典】 NS2(Network Simulator 2)是一个广泛使用的网络模拟器,主要用于研究和分析网络协议、性能和行为。对于初学者来说,掌握NS2的基本概念和思想至关重要。以下是根据标题和描述提炼出的...

    Android开发笔记——模拟器、应用教程 pdf

    总之,这份"Android开发笔记——模拟器、应用教程"将引导你全面了解Android开发的核心技术和实践方法,无论你是初学者还是经验丰富的开发者,都可以从中受益。通过学习和掌握这些知识点,你将能够创建出高质量、适应...

    ASP.NET源码——利用handler生成静态页面的完整解决方案.zip

    在这个"ASP.NET源码——利用handler生成静态页面的完整解决方案.zip"压缩包中,我们可以看到一个利用ASP.NET Handler(HttpHandler)来生成静态HTML页面的实践案例。 Handler在ASP.NET中扮演着处理特定HTTP请求的...

    Mars老师视频源代码

    《Mars老师视频源代码详解——深入Android编程实践》 Mars老师的视频源代码是一份宝贵的教育资源,专注于Android平台的开发。这份源代码是Mars老师在教学过程中使用的实例,旨在帮助学习者深入理解Android应用的...

    android mars视频代码 wifi 源码

    6. **UI交互**:在视频教程中,Mars老师可能会演示如何将WiFi功能与用户界面结合,例如,创建一个列表显示扫描到的网络,用户可以选择并连接。这涉及到`ListView`、`Adapter`等组件的使用。 7. **异步处理**:考虑...

    【RBAC】基于springboot+shiro实现RBAC权限后台管理系统.zip

    |—— |—— handler —— 异常捕获统一处理 |—— |—— result —— json返回结果 |—— |—— util —— 工具类 |—— model |—— |—— base —— pojo的父类 |—— |—— dao —— 持久层 |—— |—— domain ...

    mars视频教程源码全集

    【火星(Mars)视频教程源码全集】是一份专为学习者设计的资源,旨在帮助他们深入了解和掌握Android应用开发的相关技能。这个压缩包包含了一系列与Android应用开发相关的项目源码,覆盖了多个关键知识点,对于想要...

    Netty4.0学习笔记系列之二:Handler的执行顺序

    在本篇“Netty4.0学习笔记系列之二:Handler的执行顺序”中,我们将深入探讨Netty中的Handler处理链以及它们的执行流程。 首先,Netty 中的 ChannelHandler 是处理 I/O 事件或拦截 I/O 操作的核心组件。每个 ...

Global site tag (gtag.js) - Google Analytics