`
FlyingFairy
  • 浏览: 11965 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

安卓开发中的handler机制

阅读更多

这几天写了通信项目,又在写安卓的socket通信项目。这就避免不了要去了解在安卓的线程用到的handler机制

在JavaSE中也在用线程,于是在写安卓中的线程的时候很自然的就直接写了像JavaSE一样的代码。

 

比如实现一个简单的无颜值的抽奖软件,需要在新建的线程中调用TextView的setText()方法,这样在java中似乎是很自然的东西,可是如果是在安卓开发时,这样写是不安全的。比如我运行时,就是闪退;

这是为什么?因为在安卓中,主线程是不安全的,是非线程安全的,意思是说 UI的组件创建及更新操作都需要在主线程中进行。

意思是不可以在其他的线程中对UI界面进行操作。

这时候就要用到handler进行线程之间的通信。

很简单的例子,在其他线程中无法进行的操作,我们可以用一个handler来收发信息,在handler中进行对组件的操作。

Handler handler = new Handler() {
	// 在Handler中获取消息,重写handleMessage()方法
	public void handleMessage(Message msg) {
		CJtext.setText((String) msg.obj);	
	}
};
/************下面是线程的run()方法************/

public void run() {
		while (getFlag()) {//这个getFlag()是实现开始与停止按钮的功能
			Random rand = new Random();
			int i = rand.nextInt(100);
			handler.sendEmptyMessage(i);
			try {
				sleep(100);
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

 上面的TextView组件的刷新就是在handler的方法中实现的,handler相当于负责了在新建的线程接收指令,并根据指令 执行。

分享到:
评论

相关推荐

    Android Handler机制的工作原理详析

    虽然网上已经有很多Handler相关的文章了,而且Handler机制的上层原理也并不难,还是决定写一下,因为我想构建自己的知识体系。也希望给看我博客的朋友们一个无缝衔接的阅读体验。 Handler机制涉及到的类主要有...

    Android消息处理机制之Handler 三

    【Android 开发】: Android 消息处理机制之 Handler 中 sendMessage() 源代码剖析 http://blog.csdn.net/ahuier/article/details/17013647

    android线程消息机制之Handler详解

    平常在开发中,我们常用来在子线程中通知主线程来更新,其实整个安卓生命周期的驱动都是通过Handler(ActivityThread.H)来实现的。 首先我们先介绍这四个类的作用: Handler:消息的发送者。负责将Message消息发送到...

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

    安卓应用开发基础的消息处理机制分析。对应用工程师很有帮助。

    详解Android中Handler的内部实现原理

    本文主要是对Handler和消息循环的实现原理进行源码分析,如果不熟悉Handler可以参见博文《详解Android中Handler的使用方法》,里面对Android为何以引入Handler机制以及如何使用Handler做了讲解。 概括来说,Handler...

    Android Handler多线程详解

     Android的消息传递机制是另外一种形式的“事件处理”,这种机制主要是为了解决Android应用中多线程的问题,在Android中不 允许Activity新启动的线程访问该Activity里的UI组件,这样会导致新启动的线程无法改变UI...

    深入Android Handler,MessageQueue与Looper关系

    一说到Android的消息机制,自然就会联想到Handler,我们知道Handler是Android消息机制的上层接口,因此我们在开发过程中也只需要和Handler交互即可,很多人认为Handler的作用就是更新UI,这也确实没错,但除了更新UI...

    Android开发之通信方式之Handler

    ✓ 在Android开发的过程中,我们常常会将耗时的一些操作(比如:下载东西,遍历寻找文件,或计算很复杂的运算等等)放在子线程(workthread)中去执行,在结果出来之后就要在主线程(UI线程、mainthread)中显示出来...

    handler全面分析

    最近总结了一下handler的使用,handler是Android中要的消息机制之一,在面试和实际开发中尤为重要,所以总结了一下,传到这里,和大家交流学习

    Android 线程开发 开发实例

    针对这种消息循环的机制,我们引入一个新的机制Handler,我们有消息循环,就要往消息循环里面发送相应的消息,自定义消息一般都会有自己对应的处理,消息的发送和清除,把这些都封装在Handler里面,注意Handler只是...

    Android开发艺术探索

    2.2 Android中的多进程模式 / 36 2.2.1 开启多进程模式 / 36 2.2.2 多进程模式的运行机制 / 39 2.3 IPC基础概念介绍 / 42 2.3.1 Serializable接口 / 42 2.3.2 Parcelable接口 / 45 2.3.3 Binder / 47 ...

    android开发艺术探索高清完整版PDF

    , 《Android开发艺术探索》侧重于Android知识的体系化和系统工作机制的分析,通过《Android开发艺术探索》的学习可以极大地提高开发者的Android技术水平,从而更加高效地成为高级开发者。而对于高级开发者来说,仍然...

    android的消息处理机制(图文+源码分析)—Looper/Handler/Message

    android源码中包含了大量的设 计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了。这不,前几天为了了解android的消息处理机 制,我看了Looper...

    Android开发艺术探索.任玉刚(带详细书签).pdf

    本书是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点。本书从三个方面来组织内容。第一,介绍Android开发者不容易掌握的一些知识点;第二,结合Android源代码和应用层...

    Android应用程序消息处理机制(Looper、Handler)分析[收集].pdf

    Android应用程序消息处理机制(Looper、Handler)分析[收集].pdf

    Android 消息机制以及handler的内存泄露

    每个初学Android开发的都绕不开Handler这个“坎”,为什么说是个坎呢,首先这是Android架构的精髓之一,其次大部分人都是知其然却不知其所以然。今天看到Handler.post这个方法之后决定再去翻翻源代码梳理一下Handler...

    Android开发与应用——张荣,原书配套课件

    这是Android开发与应用,原书配套的课件,作者张荣,目录如下。 第1章 Android简介 1.1 手机操作系统 1.2 Android起源 1.3 Android特征 1.4 Android体系结构 1.4.1 应用层 1.4.2 应用框架层 1.4.3 ...

    android开发秘籍

    android开发秘籍完整版清晰版 第1 章 android 概述 1 1.1 android 演化史 1 1.2 android 的两面性 2 1.3 运行android 的设备 2 1.3.1 htc 系列机型 4 1.3.2 摩托罗拉系列机型 4 1.3.3 三星系列机型 4 1.3.4 ...

    Android 消息处理机制之一

    【Android 开发】: Android 消息处理机制之 Handler 与 Message http://blog.csdn.net/ahuier/article/details/17012005

Global site tag (gtag.js) - Google Analytics