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 简单使用)