玩转Android---组件篇---Handler的使用(1)
在android中,有很多功能是不能放在onCreate或者onStart方法里面,因为这些功能相对
来说费时比较长,比如说下载一个文件,下载的过程比较长,但是如果写在Activity中,
那么这段时间Activity是完全没有响应的,那么就可以将这种处理大量数据或者耗时比较
长的东西放在一个单独的线程中来完成,即Activity是一个线程,而下载的是在另外一个
线程,那么这样就可以使得下载跟Activity之间互不影响,从而得到了良好的用户体验
?
这里有两种队列,一种是线程队列,就是用postXX方法或者removeCallbacks方法对线程对象的操作。另一种是消息队列,用sendMessage和handleMessage方法来对消息对象进行处理
?
?
handler采用的是一个消息队列的方式,每一个handler都有一个与之关联的消息队列,而且是先进先出的方式执行,即:每次加入一个handler,然后拿出来,对其进行处理,然后再拿出另一个,再进行处理
?
例子一:这个例子仅仅是对线程对象进行操作的测试
?程序解释:首先创建一个Handler对象,然后创建一个继承自Runnable接口的线程程序首先点击按钮“开始”,于是会马上执行post方法,将执行的线程对象添加到线程队列中,这时会马上执行
?
运行结果:
?
?程序说明:
1、当点击按钮后,会执行按钮的onClick方法中的
2 楼 lovelydog 2011-06-03 不错,解释的很清楚 3 楼 obullxl 2011-06-08 嗯,例子很不错,受教了。 4 楼 //ghost 2011-06-17 收藏一下,明天有空看 5 楼 大柳树 2011-06-21 不错不错!!!
6 楼 wangguangji 2011-06-22 你的这个例子 是在一个进程里面进行的啊 都是在主进程里面进行的