码迷,mamicode.com
首页 > 移动开发 > 详细

Android消息处理

时间:2015-10-17 11:57:36      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

Android事件处理的两种模式

 

 基于监听的事件处理

  事件源Event Source, 事件Event, 事件监听器Event Listener,

  事件源将事件委托给事件监听器,由事件监听器对事件进行响应处理。

  SetXXXListener()

基于回调的事件处理

  1. 都有一个boolean的返回值,决定事件是否继续向下传播
  2. extends button/Activity/View

实现响应组件的方法,例如:onKeyDown(), onTouchEvent()

在布局文件中绘制相应组件

系统设置类Configuration,方法onConfigurationChanged()是基于回调的事件处理方法,用于监听系统设置的变化;

 

Handler消息传递机制

   Handler主要功能有两个:在新启动的线程中发送消息;在主线程中获取、处理消息。

   Looper: 每个线程可以产生一个Looper,用它来管理Message Queue,从MessageQueue中取出消息

   Handler: 构造Handler对象来与Looper沟通,以便push 新消息到 Message Queue里,或者接收Looper从Message Queue 里所送来的消息。

   Message Queue: 管理Message

  

Handler执行过程:

   技术分享

  

 使用Handler的步骤:

  1. 创建Looper对象:Looper.prepare(); 
  2. 创建Handler子类实例,重写handleMessage()方法;

         mHandler = new Handler(){

                         handleMessage();

                }

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

      4.  在UI线程中实例化新的Looper线程,调用thread.run()启动线程;

UI线程向新线程中的Handler发送消息 handler.sendMessage()

Android消息处理

标签:

原文地址:http://www.cnblogs.com/chenyready/p/4887187.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!