EventBus 简单使用

简单记录下EventBus的使用:

//依赖
 compile 'de.greenrobot:eventbus:+'

setup1 接收页面

//在Activity中 或者是 Fragment 中 注册 EventBus
  @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EventBus.getDefault().register(this);
    }

setup2 接收页面

//注册就会有反注册
    @Override
    public void onDestroy() {
        super.onDestroy();
        EventBus.getDefault().unregister(this);
    }

setup3

//为了测试新建一个实体类简单点 

public class MessageEven {

    public String str;

    public MessageEven(String str) {
        this.str = str;
    }

    public String getStr() {
        return str;
    }

    public void setStr(String str) {
        this.str = str;
    }
}

setup4 接收页面

   @Subscribe()
    public void onMainEvenBus(MessageEven even) {
        tv_desc.setText(even.getStr());
    }

注意

在3.0之前,EventBus还没有使用注解方式。消息处理的方法也只能限定于onEvent、onEventMainThread、onEventBackgroundThread和onEventAsync,分别代表四种线程模型。而在3.0之后,消息处理的方法可以随便取名,但是需要添加一个注解@Subscribe,并且要指定线程模型(默认为PostThread),四种线程模型,下面会讲到。

注意,事件处理函数的访问权限必须为public,否则会报异常。

setup5 发送页面

       MessageEven messageEven = new MessageEven(“发送消息了~”);
       EventBus.getDefault().post(messageEven);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言:EventBus出来已经有一段时间了,github上面也有很多开源项目中使用了EventBus。所以抽空学习...
    Kerry202阅读 5,036评论 1 2
  • EventBus 通过发布/订阅的方式进行消息传递。主要功能是替代 Intent、Handler、BroadCas...
    lisheny阅读 3,290评论 0 2
  • 对于Android开发老司机来说肯定不会陌生,它是一个基于观察者模式的事件发布/订阅框架,开发者可以通过极少的代码...
    飞扬小米阅读 5,314评论 0 50
  • 目录 1.概述 2.实战 1.基本框架搭建 2.新建一个类FirstEvent 3.在要接收消息的页面注册Even...
    慕涵盛华阅读 13,556评论 2 16
  • 最近在项目中使用了EventBus(3.0),觉得非常好用,于是就看了一些关于EventBus源码分析的文章,现在...
    shenhuniurou阅读 5,382评论 0 4