EventBus3.0集成使用详解(上)

        在应用开发过程中少不了使用Intent,线程,广播传递数据,当应用包还比较小的时候我们并不会感觉这些方法会有多麻烦,但是当应用包越来越大,模块越来越多,功能越来越复杂,这用这些方法就会感觉越来越难受,甚至你自己都感觉写的想吐,而这时EventBus就是你最好的选择(其实我最开始就想代替跳转传值而已),Eventbus具有集成方便,简单易用,代码量少,耦合性低的优点,大大的方便了各个功能模块(activity,fragment,service等等)的通信

1. 先上一个EventBus的地址吧EventBus GitHub地址

看看他的介绍,个人较懒,就不打字了,直接上图,我比较喜欢图微笑


总而言之,言而总之吧,大概意思就是:EventBus能够简化各组件间的通信,能有效的吧发送方和接收方分离,避免过度依赖导致程序出错的问题

2.EventBus的三个重点

    ①MessageEvent实体对象,有很多都说是EventBus的事件,也确实是事件(因为EventBus根据他来判断是是谁发的事件),但总的来说总归是个对象,万物皆对象嘛,没有对象也可以new一个对象嘛,好了,扯远了现在扯回来,这个MessageEvent对象(事件)可以是任何类型的,String,int,,,Object等,他承载了我们需要发送的数据

    ②Subscriber事件订阅者,用于接收事件,方法名可以随意取,单是必须是公开方法(public),非公开方法会报错哦,亲测报错尴尬.......

    ③Promulgator事件发布者,用于发布事件,简单来说就是一句代码的事,如果不行就换句代码,,,,,,下面例子会说到


3.集成EventBus

    在build下添加,,,,不多说了,用AS的都知道


4.注册与注销

    在你看的顺眼生命周期注册一下(onCreate,onStart),然后在不顺眼的地方在注销下,(onStop,onDestroy),尽量去尝试,注意生命周期哦,,,,,注册代码为EventBus.getDefault.register();注销代码为EventBus.getDefault.unregister()。在这里说一下另一条语句,EventBus.getDefault.isRegister(),这条语句是判断是否注册的,可以配合上面那两句代码用

实现代码


5.发送消息

先搞一个实体对象(事件)用来发送消息,例如下图:


然后写个发送事件布局就一个button


6.接收事件,接收事件,接收事件


7.运行程序测试,去吧皮卡丘



结尾:

    EventBus用法当然不止这些,这些只是最简单最基本的用法,下篇文章给大家唠叨唠叨粘性传递

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值