设为首页 加入收藏

TOP

Android之Handler消息机制
2014-11-24 02:33:46 来源: 作者: 【 】 浏览:0
Tags:Android Handler 消息 机制

1.在新启动的线程中发送给消息


2.在主线程获取、处理消息



因为在Android系统中UI操作并不是线程安全的,如果多个线程并发的去操作同一个组件,可能导致线程安全问题。为了解决这一个问题,android制定了一条规则:只允许UI线程来修改UI组件的属性等,也就是说必须单线程模型,这样导致如果在UI界面进行一个耗时叫长的数据更新等就会形成程序假死现象 也就是ANR异常,如果20秒中没有完成程序就会强制关闭。所以比如另一个线程要修改UI组件的时候,就需要借助Handler消息机制了。



1. void handleMessage(Message msg):处理消息的方法,该方法通常被重写。


2.final boolean hasMessage(int what):检查消息队列中是否包含有what属性为指定值的消息


3.final boolean hasMessage(int what ,Object object) :检查消息队列中是否包含有what好object属性指定值的消息


4.sendEmptyMessage(int what):发送空消息


5.final Boolean send EmptyMessageDelayed(int what ,long delayMillis):指定多少毫秒发送空消息


6.final boolean sendMessage(Message msg):立即发送消息


7.final boolean sendMessageDelayed(Message msg,long delayMillis):多少秒之后发送消息



1.Handler:它把消息发送给Looper管理的MessageQueue,并负责处理Looper分给它的消息


2.MessageQueue:采用先进的方式来管理Message


3.Looper:每个线程只有一个Looper,比如UI线程中,系统会默认的初始化一个Looper对象,它负责管理MessageQueue,不断的从MessageQueue中取消息,并将


相对应的消息分给Handler处理



1.调用Looper的prepare()方法为当前线程创建Looper对象,创建Looper对象时,它的构造器会自动的创建相对应的MessageQueue


2.创建Handler子类的实例,重写HandleMessage()方法,该方法处理除UI线程以外线程的消息


3.调用Looper的loop()方法来启动Looper



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇按键从Linux到Android 下一篇Android按键灯流程分析

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: