android EventBus的使用

一. 最近在学习的过程中,学习到了一个比较好用的android的开源框架--EventBus。经过几次的百度借鉴与实践了解之后,整理如下,供以后的学习查阅。

 

二.关于EventBus的定义:

                             

         1.Android开源框架EventBus主要是替代Intent、Handler、BroadCast在Fragment、Activity、service、以及线程之间的传递消息。

         2.特点:使用简单,代码简洁 。

         3.EventBus是一个观察者模式的实现,他拥有观察者模式的三大要素:

              1.Event:  事件(可以是任意类型的对象)                                                          

              2.Subscriber:  事件订阅者,用于接收特定的事件                                       

              3.Publisher:    事件的发布者,用于通知Subscriber数据的变化

三.EventBus的使用方法:

       1.首先要下载一个EventBus的jar包(https://repo1.maven.org/maven2/org/greenrobot/eventbus/3.0.0/eventbus-3.0.0.jar)。

          ps: android Studio倒入jar包的方法:复制jar包到app-src-main-libs文件夹下,然后右键jar包,在弹出的菜单中点击Add As Library即可。就可以使用EventBus了。

       2. 创建一个MsgTest类 用于封装要发送的信息,信息类型根据需要而定,这里使用String类型:

           

          3.注册与注销(在需要接受数据的fragment或者Activity中的onCreate(),onStop()方法中进行)

               1.注册使用:    EventBus.getDefault().register(this);

               2.注销使用:    EventBus.getDefault().unregister(this);

               3.具体代码:

                    

                  注意:注册与注销一定是在要接收数据的fragment或者activity中。
        4.发送数据:
                完成了以上几步之后,接下来就可以发送参数了:
                    发送数据比较简单,我们只需要在需要发送数据的地方使用这条语句即可 EventBus.getDefault().post("你要发送的数据");:
                     

      5.接收数据:

                    接收数据有以下几种方法,只要在注册接收的fragment或者activity中使用任意一种方法即可:

                 

           1.public void onEvent(MsgTest msgTest) //事件的处理在和事件的发送在相同的线程,处理时间不应太长,不然影响事件的发送线程

           2.public void onEventMainThread(MsgTest msgTest) //事件的处理会在UI线程中执行。事件处理时间不能太长

           3.public void onEventBackgroundThread(MsgTest msgTest)//如果发送事件的线程是后台线程,会直接在当前后台线程执行事件;
                                                            如果当前线程是UI线程,事件会被加到一个队列中,由一个线程依次处理这些事件,
             
           4.public void onEventAsync(MsgTest msgTest)//主要用于在后台线程中执行耗时操作,每个事件会开启一个线程


                具体代码如下:

 

                      

                   其他方法 接收方式一致;

                  ps :  最后提示一点:一定要在接收方法头部加上    @Subscribe  字段

 

四.总结:

             总之,EventBus的使用就是这么简单。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值