1.Handler的基本概念
有时候,你不可能把所有的功能都放到activity中,比如你想下载一个东西 ( 或者传输一份文件,或者其它耗时比较长的,甚至有可能没有结果的行为),需要花1分钟到2分钟的时间,你在下载的时候也想同时做点其它的事情,如果这个行为是写在activity方法中的话,那么下载的过程中activity是没有响应的,这样用户体验就很差。所以呢,下载这些东西需要放到另外的线程中,放到后台去进行,这样在下载的同时还可以进行其它的操作。
Handler其实主要是android为线程而弄出来的,它和调用它的Activity处于同一线程。消息是在消息队列中进行缓冲,一个一个的被送进去,然后再一个一个地被处理,谁送,谁处理呢???Handler。那么有了它一切就方便一些,在不考虑优先级的情况下,先进去的先被处理,一切都仅仅由Handler对象(记得定义Handler对象)的一些方法来搞定。
1) 如果数据处理很多,很费时,就要放在线程中做处理,不然UI卡住超过5s就异常了。
但是线程中是不能主动更新UI的,所以要通过handler发消息,然后在消息处理里去做这个UI的更新。
2) UI的绘制不是所有都需要动画来实现,简单的东西可以通过handler来做,比如跑马灯的绘制,
动过handler的定时消息,以便在消息处理中进行UI的滚动绘制。
3) 其他的还有下载时进度条,开机动画等等,都是可以用handler来做的。
1) 如果数据处理很多,很费时,就要放在线程中做处理,不然UI卡住超过5s就异常了。
但是线程中是不能主动更新UI的,所以要通过handler发消息,然后在消息处理里去做这个UI的更新。
2) UI的绘制不是所有都需要动画来实现,简单的东西可以通过handler来做,比如跑马灯的绘制,
动过handler的定时消息,以便在消息处理中进行UI的滚动绘制。
3) 其他的还有下载时进度条,开机动画等等,都是可以用handler来做的。
2.Handler的使用方法
举个例子吧,比如说我想每隔5秒钟输出一句话,那么按下某个start按钮以后,这个动作就开始了,每隔5秒就输出一句话,直到按下一个叫end的按钮,将消息对象从队列中移除。
3.至于hanlder和looper的使用,实现真正的异步,我还没有看懂,有点乱
举个例子吧,比如说我想每隔5秒钟输出一句话,那么按下某个start按钮以后,这个动作就开始了,每隔5秒就输出一句话,直到按下一个叫end的按钮,将消息对象从队列中移除。
3.至于hanlder和looper的使用,实现真正的异步,我还没有看懂,有点乱