- 博客(4)
- 资源 (26)
- 收藏
- 关注
原创 Android中利用Handler实现消息的分发机制(三)
说到代码的可读性,有时候,我们更加看重代码之间的层次或者说模块化,耦合度等特点。不同的业务逻辑,不同的功能,应该实现在不同的模块中,而模块与模块之间就可以通过一个消息来通信,而这种消息通讯方式,我们就可以利用Handler和HandlerThread来实现。比如,最近做的一个浏览器的小Demo,其类图如下:...在不同的模块实现中, 我们可以调用registerHandler方法,将其对象的Handler注册到MessageDispatcher中,然后通过sendMessage方法,指定对应的目标,
2014-10-28 17:55:31 2169
原创 Android中利用Handler实现消息的分发机制(二)
在这篇文章开始前,我们先总结一下前两篇文章中关于Handler, Looper和MessageQueue等的一些关键点:0)在线程中创建Handler之前,必须先调用Looper.prepare(), 创建一个线程局部变量Looper,然后调用Looper.loop() 进入轮循。1)当Handler创建之后,就可以调用Handler的sendMessageAtTime方法发送消息,而实际上是调用MessageQueue的enqueueMessage方法,将对应的消息放入消息队列。2)每一个线程都只有
2014-10-28 11:31:34 2008 1
原创 Android中利用Handler实现消息的分发机制(一)
这两个的差别就在于是否有参数Looper,而Looper是一个线程相关的对象。何谓线程相关的变量?就是线程间不能共享的对象,只在本线程内有作用的对象。那么Looper对象的作用是什么?从我个人的理解,Looper类就是对MessageQueue的封装,它主要做的是两件事:1)构造Looper对象,初始化MessageQueue,我们可以从其构造函数看到:可以看到,Loop对象被创建之后,会被放到ThreadLocal变量中,而ThreadLocal正是线程局部变量,这说明了关于Looper的一个特
2014-10-27 16:55:54 2972
原创 Android中利用Handler实现消息的分发机制(零)
在之前一篇介绍AsyncTask的文章中,我们在最后讲到,AsyncTask是利用Handler的消息异步处理机制,将操作结果,利用Message传回主线程,从而进行UI线程的更新的。而在我们日常的开发工作中,Handler也是我们经常使用的类之一,那么Handler的主要作用是什么?Handler 的主要作用就是对消息(消息可以是我们想做的一些UI更新,也可以是其他的一些不可见的操作,如操作数据库等)的异步处理机制,而相信大家都了解异步的概念。简单地说一下:1)从程序的角度来看,就是当执行某行代码
2014-10-27 15:42:35 2196
Android联动ListView
2014-07-17
关于Fragment Demo的源代码
2014-06-05
Fragment和ViewPager使用Demo源代码
2014-04-09
导入已有数据的sqlitedb demo源代码
2014-03-31
Content Observer Demo 源代码
2014-03-11
volley demo 源代码 1
2014-03-10
SqliteDemo源代码
2014-02-12
NineoldAndroids jar 包
2014-01-26
Android 音乐播放器源码
2014-01-18
ApiDemoStudy
2014-01-13
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人