zoukankan      html  css  js  c++  java
  • Android Handler消息传递机制

    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组件的属性效果。
  • 相关阅读:
    【SignalR学习系列】3. SignalR实时高刷新率程序
    【SignalR学习系列】4. SignalR广播程序
    【SignalR学习系列】5. SignalR WPF程序
    python gb2312 转换为 utf-8
    爬虫 需要什么样的 CPU,内存 和带宽
    TypeError: sequence item 0: expected string, Tag found
    MySQL 数据的 截取,数据清洗
    MySQL (1366, "Incorrect string value: '\xF0\x9F\x8E\xAC\xE5\x89...' for column 'description' at row 1")
    微博爬虫 ----- 微博发布时间清洗
    ReferenceError: weakly-referenced object no longer exists Python kafka
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4259219.html
Copyright © 2011-2022 走看看