Android:EventBus-3 基本使用

Android:EventBus-3 基本使用

EventBus采用的是订阅者设计模式

一、定义一个用来通信的类

public class MyEvent{
    private String message;
    public MyEvent(String message){
        this.message = message;
    }
    public String getMessage(){
        return message;
    }
}

二、接收方注册/注销EventBus

public MyActivity{
    public void onCreate(Bundle){
        EventBus.getDefault.register(this);
    }
    public void onDestory(){
        EventBus.getDefault.unregister(this);
    }
}

三、接收方提供回调方法

注解参数说明:
threadMode():指定该方法执行在哪个线程,默认运行在发送者线程

参数名参数说明
PostThread默认选项,订阅者将会运行在发送者所在的线程
MainThread订阅者将会被回调到UI线程中运行,如果发送者运行在主线程,则采用直到而非回调方式发送消息
BackgroundThread订阅者运行在子线程,如果发送者运行在非UI线程,这采用直到而不会创建新线程
Async订阅者运行在子线程,无论发送者在什么线程,都会创建新线程

sticky()
有时候某个事件可能会用到多次,比如最新的位置更新信息,可能需要多次用到,真对这种情况,您可以把该事件发布为Sticky Event,然后,当需要查询该信息的时候,可以通过Bus的getStickyEvent(ClasseventType) 函数来查询最新发布的Event对象。
同一类型的事件只保存最新的Event对象。
注册和发布事件的函数分别为 registerSticky(…) 和 postSticky(Object event)

priority()
设置事件的优先级

public MyActivity{
    @Subscribe(threadMode = ThreadMode.MainThread)
    public void myEvent(MyEvent event){
        Syso(event.getMessage);
    }
}

四、发送者发送信息

    EventBus.getDefault().post(new MyEvent("hello"));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值