Android消息机制

来源:互联网 发布:怎么看自己的淘宝联盟i 编辑:程序博客网 时间:2024/04/25 17:16

1. 消息机制的引入

       Android中只有在UIThread中才能更新界面,在长时间的联网请求和其他操作需要在workThread中执行,所以在分线程中联网请求后如果需要更新UI界面的时候就需要引入消息机制。

 

如何实现线程间通信呢?  (分线程如何传送数据给主线程)
    方式一: Thread + runOnUiThead()
    方式二:  Thread + Handler + Message
    方式三:   AsyncTask (实现了对Thread 和 Handler的封装,提供了一个线程池)

2. Message的使用 :  
          1).作用
               •可理解为线程间通讯的数据单元, 可通过message携带需要的数据

          2). 对象的创建
              调用Message的静态方法obtain()获取Message的一个对象。
          (Message内部维护了一个消息池,对象是从消息池中获取的:可能是已经存在的message对象,也可能是新创建的)

          3). 对象的使用
              
               int what: 唯一的标识此message对象
               int args1/args2:用于存储int型的数据
               Object obj:用于存储object类型的数据

               其它:
               long when :此消息要被处理的时间
               Message next: 如果在一个message中又声明另一个message,整体就构成一个对列的结构
               Handler target: 处理此Message的Handler对象
               Runnable callback: 每个message,都可以设置自己被处理的方式
               Message sPool:  涉及到消息池的使用

原创粉丝点击