Android的消息机制是另一种形式的“事件处理”,这种机制是为了解决Android应用的多线程问题。--Android平台不允许Activity新启动的线程访问Activity里的界面组件,这样会导致新启动的线程无法修改界面组件的属性值,此时我们需要通过Hander的消息机制来实现了。

1.Handler简介
1) Handler作用:
在新启动的线程中发送消息
在主线程中获取,处理消息
2)控制消息的发送和接受的时机
通过回调的方法来实现,开发者需要重写Handler类中处理消息的方法,当新启动的线程发送消息
时,Handler类中处理消息的方法被自动回调。
3)Handler类包含如下方法用于发送、处理消息
. void handleMessage(Message msg):处理消息的方法。该方法通常用于被重写
. final boolean hasMessages(int what):检查消息队列中是否包含what属性为指定值的消息
. final boolean hasMessages(int what,Object object) :检查消息队列中是否包含what属性为指定值
的消息且object属性为指定对象的消息
. 多个重载的Message obtainMessage():获取消息
. sendEmptyMessage(int what):发送空消息
. final boolean sendEmptyMessageDelayed(int what,long delayMills):指定多少秒后发送空消息
. final boolean sendMessage(Message msg):立即发送消息
. final boolean sendMessageDelayed(Message msg,long delayMills):指定多少秒后发送消息

2.使用心得:
1) 发送消息
新的启动线程,如:
new Timer().schedule(new Task(){
public void run(){
Message msg = new Message();
msg.what=0x1223;
myHandler.sendMessage(msg);
}
});
在上面中myHandler 是重写后的实例化对象:
final Handler myHandler = new Handler(){
public void handleMessage(Message msg){
if(msg.what = 0x1223){ //确保此条消息是本程序发送
.......
}
}
};
当新的线程发送发送消息时,重写的handlerMessage(Message msg)就会被回调,从而达到了新线程来修改
Activity组件的属性效果。

更多相关文章

  1. 浅析Android中的消息机制-解决:Only the original thread that cr
  2. Android异步消息机制之Handler
  3. Android的Handler机制详解3_Looper.looper()不会卡死主线程
  4. Android(安卓)bluetooth介绍(四): a2dp connect流程分析
  5. Android之Handler用法总结
  6. Android开发之消息处理机制(一)——Handler
  7. Android(安卓)开发中的倒计时
  8. Android异步加载图像小结 (含线程池,缓存方法)
  9. android 面试题集

随机推荐

  1. android操作XML的几种方式
  2. 友盟深坑分享
  3. Android开机动画详解
  4. android编码规范
  5. Android(安卓)实用工具Hierarchy Viewer
  6. 在Windows中的安装Android(安卓)NDK开发
  7. Android(安卓)Studio上方便使用butterkni
  8. Android(安卓)Checkbox详解
  9. android 启动默认的邮件客户端,多附件的问
  10. Android设置背景色为透明的两种方法