首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

玩转Android-组件篇-Handler的运用(1)

2012-08-28 
玩转Android---组件篇---Handler的使用(1)在android中,有很多功能是不能放在onCreate或者onStart方法里面,

玩转Android---组件篇---Handler的使用(1)

在android中,有很多功能是不能放在onCreate或者onStart方法里面,因为这些功能相对

来说费时比较长,比如说下载一个文件,下载的过程比较长,但是如果写在Activity中,

那么这段时间Activity是完全没有响应的,那么就可以将这种处理大量数据或者耗时比较

长的东西放在一个单独的线程中来完成,即Activity是一个线程,而下载的是在另外一个

线程,那么这样就可以使得下载跟Activity之间互不影响,从而得到了良好的用户体验

?

这里有两种队列,一种是线程队列,就是用postXX方法或者removeCallbacks方法对线程对象的操作。另一种是消息队列,用sendMessage和handleMessage方法来对消息对象进行处理

?


玩转Android-组件篇-Handler的运用(1)
?

handler采用的是一个消息队列的方式,每一个handler都有一个与之关联的消息队列,而且是先进先出的方式执行,即:每次加入一个handler,然后拿出来,对其进行处理,然后再拿出另一个,再进行处理

?

例子一:这个例子仅仅是对线程对象进行操作的测试


?程序解释:首先创建一个Handler对象,然后创建一个继承自Runnable接口的线程

程序首先点击按钮“开始”,于是会马上执行post方法,将执行的线程对象添加到线程队列中,这时会马上执行

?

运行结果:


玩转Android-组件篇-Handler的运用(1)
?
玩转Android-组件篇-Handler的运用(1)
?

程序说明:

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   你的这个例子 是在一个进程里面进行的啊 都是在主进程里面进行的

热点排行