Eventbus3.0的简单使用

简介

我们使用一个框架或者控件,首先需要知道他的作用,有什么优势。Eventbus3.0这说白了就是一个事件发布和订阅的框架。直白点说就是一边发送消息,或数据,另外一边接收消息或数据。它发送消息和接收消息的代码十分的简洁,用起来十分的简单。

先说下使用的代码吧

这里看不懂不要着急在下面有详解哦!

导入框架

在安卓studio的build文件下加入
compile’org.greenrobot:eventbus:3.0.0’

一、注册

 //注册
 EventBus.getDefault().register(this);

二、取消注册

@Override
    protected void onDestroy() {
        super.onDestroy();
        //取消注册
        EventBus.getDefault().unregister(this);
    }

三、发布

 //直接发布,接收对象
EventBus.getDefault().post("发布");
 //滞留发布
EventBus.getDefault().postSticky("滞留发布");

四、订阅处理数据

/*
    *UserEvent需要自己定义
    */

    //在ui线程执行 
    @Subscribe(threadMode = ThreadMode.MainThread) 
    public void onUserEvent(UserEvent event) {
    }

    //在后台线程执行
    @Subscribe(threadMode = ThreadMode.BackgroundThread) 
    public void onUserEvent(UserEvent event) {
           string a= event.getText();//这就是接收的数据
    }

    //强制在后台执行
    @Subscribe(threadMode = ThreadMode.Async) 
    public void onUserEvent(UserEvent event) {
            string a= event.getText();
    }

    //默认方式, 在发送线程执行
    @Subscribe(threadMode = ThreadMode.PostThread) 
    public void onUserEvent(UserEvent event) {
            string a= event.getText();
    }

总结下

eventbus的使用就差不多是这个样子了,这些代码直接复制粘贴进去就好了,但是我刚接触的时候感觉怪怪的,就是在订阅处理数据的时候我一直有个疑问,这个方法不是没有调用吗?他是怎么回事啊?原来订阅的方法不需要调用,这这个类里面注册了然后收到了数据就直接会走到订阅的方法里面:@Subscribe(threadMode = ThreadMode.MainThread) 这个就是接受的标识。然后UserEvent 是什么东西呢?相信大家没有看懂,这个是自己定义的一个类

/**
 * 实体类
 */
public class UserEvent {

    /**
     * 这里你传递什么类型你就写什么类型
     */

    //文本
    private String text;
    public UserEvent (String text) {
        this.text=text;
    }
    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }
}

在发布的时候

EventBus.getDefault().post(new UserEvent("我是消息"));

当订阅者的类中订阅了,也就是register就能接受到发送者发送的消息。

这只是一个基础的使用,预知进阶使用,请听下回分解,明晚八点不见不散!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值