文章分类 - Android Handler
摘要:主源文件:package com.example.handlerdemo;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.app.Activity;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import
阅读全文
摘要:先看例子一:Java代码packagecom.example.looper_1;importandroid.app.Activity;importandroid.os.Bundle;importandroid.graphics.Color;importandroid.os.Handler;importandroid.os.Looper;importandroid.os.Message;importandroid.util.Log;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.widge
阅读全文
摘要:上一篇博客讲解了Handler实现线程间通信,这篇博客讲解一下Handler运行的原理,其中涉及到MessageQueue、Looper。简要来讲,Handler会把一个线程消息发送给当前线程的消息队列,从最后Handler会处理消息队列中的消息,这里的消息队列就是MessageQueue,而管理消息队列的,就是Looper。 Handler、MessageQueue、Looper三者间的关系如图: 从上图可以看出,Handler发送线程消息到当前线程的MessageQueue中,而Looper用来管理MessageQueue,它从MessageQueue中取到消息交给Handler处理。..
阅读全文
摘要:作为一个大三的预备程序员,我学习android的一大乐趣是可以通过源码学习google大牛们的设计思想。android源码中包含了大量的设计模式,除此以外,android sdk还精心为我们设计了各种helper类,对于和我一样渴望水平得到进阶的人来说,都太值得一读了。这不,前几天为了了解android的消息处理机制,我看了Looper,Handler,Message这几个类的源码,结果又一次被googler的设计震撼了,特与大家分享。android的消息处理有三个核心类:Looper,Handler和Message。其实还有一个Message Queue(消息队列),但是MQ被封装到Loop
阅读全文
摘要:方法一:(java习惯,在android平台开发时这样是不行的,因为它违背了单线程模型)刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题new Thread( new Runnable() { public void run() { myView.invalidate(); } }).start();可以实现功能,刷新UI界面。但是这样是不行的,因为它违背了单线程模型:Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。方法二:(Thread+Handl...
阅读全文
摘要:Handler主要接受子线程数据,并用此数据配合主线程更新UI。Handler的作用:(1)发送和处理消息(Message)。(2)发送和处理Runnable对象。 对于Android里的消息处理,涉及到Handler,Looper,Message,MessageQueue等概念,先理顺这些概念。Message:消息,其中包含了消息ID,消息处理对象以及处理的数据等,由MessageQueue统一列队,终由Handler处理。Handler:处理者,负责Message的发送及处理。使用Handler时,需要实现handleMessage(Message msg)方法来对特定的Message进.
阅读全文