Handler消息通知的使用

特点:
1. 传递Message。用于接受子线程发送的数据, 并用此数据配合主线程更新UI。
在Android中,对于UI的操作通常需要放在主线程中进行操作。如果在子线程中有关于UI的操作,那么就需要把数据消息作为一个Message对象发送到消息队列中,然后,由Handler中的handlerMessage方法处理传过来的数据信息,并操作UI。当然,Handler对象是在主线程中初始化的,因为它需要绑定在主线程的消息队列中。
类sendMessage(Message msg)方法实现发送消息的操作。 在初始化Handler对象时重写的handleMessage方法来接收Message并进行相关操作。
2. 传递Runnable对象。用于通过Handler绑定的消息队列,安排不同操作的执行顺序。
Handler对象在进行初始化的时候,会默认的自动绑定消息队列。利用类post方法,可以将Runnable对象发送到消息队列中,按照队列的机制按顺序执行不同的Runnable对象中的run方法。

以上来源于百度百科;

上次提到刷新页面,那么activity是在什么情况下得到消息进行刷新呢?这就使用到了Handler消息通知。
当发送完消息后,使用handler接收到更改页面的消息后,就刷新。
下面我们就看看代码是怎么实现的:

首先当你的数据源改变了,需刷新刷新页面的时候要new一个Message对象,使用what来进行标记接下来要进行的操作,给handler做判断。比如我们接下来要进行的操作是刷新,所以自定义一个int类型的常量,当handler接收到message,并判断常量是什么,然后进行接下来的操作。

发送消息:
Message message = new Message();
message.what = REFRESHDATA;//handler根据收到不同的what可以进行不同的处理,what在这里是一个标记
myActivity.this.mHandler.sendMessage(message);

接收消息:
  public Handler mHandler = new Handler(){
  public void handleMessage(Message msg) {
    super.handleMessage(msg);
    switch (msg.what) {
   case REFRESHDATA:
        /**
           *这里边是刷新的一系列数据准备,准备好后进行刷新
           **/
       sAdapter.notifyDataSetInvalidated();
    break;
   default:
    break;
   }
   }
  };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值