EventBus 简单使用

作者: 冉冉升起的小太阳 | 来源:发表于2017-03-09 15:37 被阅读25次

    简单记录下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 简单使用

        本文链接:https://www.haomeiwen.com/subject/zonwgttx.html