Handler的使用上

    Handler是android给我们提供用来更新UI的一套机制,也是一套消息处理的机制,我们可以发送消息,也可以通过它处理消息。Handler在frameWork的应用也非常广泛,比如说最常见的Activity的生命周期,onCreate、onResume、onDestory等方法都是通过Handler发送不同的消息去回调的,其实,在frameWord当中,Activity的交互,大部分都是通过AMS(activity manager service)处理的,整个应用程序的ActivityThread就是用过Handler的机制接收到AMS给我们发送的生命周期一些管理.

    Android的开发是一定要用到handler的,因为Android在设计的时候,就封装了一套消息创建、传递、处理机制,如果不遵循这样的机制,就没有办法更新UI消息的(当然也可以自己设计一套消息创建、传递、处理的机制,不过会相当麻烦,所以最好用Google提供的这种机制),就会抛出异常

    wKiom1e1lgzSpdCfAAJFtPPrhSY835.png-wh_50

这是Android的Handler文档

    里面讲到Handler主要有两个用途,一个是定时地发送message或一个runnable对象,另一个是在一个线程当中处理并执行相应的action.

    当创建一个程序的时候,就会创建一个进程,这个进程在整个activity当中就是一个UI(主)线程,该线程就是activity thread的线程。

    如果我们在子线程中更新UI而不使用Handler做媒介的话,程序将会崩溃,下面尝试一下:

wKiom1e1oVTDhZlyAADjGK1vNKM337.png-wh_50

wKioL1e1oVahUh8tAAE7HPqK6to001.png-wh_50

从第三行的错误代码提示中可以看出:只有在主线程中才可以直接更改UI界面

    下面就在子线程中通过使用Handler修改UI,功能是实现多张图片每个一段时间自动切换

wKioL1e1orezrNwgAAHGH4-joqk677.png-wh_50

wKiom1e1orngzEnmAAFsc-7aONU722.png-wh_50

wKiom1e1orvAJcLxAADr_A8pqRg196.png-wh_50

这样程序就可以运行了


本文出自 “11828641” 博客,请务必保留此出处http://11838641.blog.51cto.com/11828641/1840103

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值