美文网首页
EventBus使用的一个小技巧

EventBus使用的一个小技巧

作者: 王魔王 | 来源:发表于2018-12-28 22:14 被阅读0次

EventBus不用多说了,做Android开发的都知道。
\color{red}{本篇适合有EventBus使用经验的人阅读}
在我刚入行的时候,我是这样使用的

注册
EventBus.getDefault().register(this);

这样注册没什么毛病,只不过如果我们一不小心在一个类中注册了两遍的话,EventBusException了解一下😂

反注册
EventBus.getDefault().unregister(this);

额,反注册倒不会抛出任何异常

使用方式

1.post事件

EventBus.getDefault().post(new TestEvent());

2.接收事件

   @Subscribe
    public void onXXX(TestEvent testEvent){

    }

\color{blue}{以上是本人刚入行时的写法,实不相瞒,这样的写法保持了很久,很久}
下面我们看看这种写法的不足:
1.注册的时候一不小心会抛异常
2.不太容易统计我们在整个项目中一共使用了多少次EventBus,换句话说,不方便统一管理,不方便更换
3.每次发送一个不同类型的事件的时候,都需要创建一个新的event类
4.同一个event类的复用性不强,同一种event事件被多次接收的时候,无法进行区分

\color{#0000ff}{困了,待续...}


睡醒了,接着写
后来,终于有一天我忍不住了,把代码改成了现在的样子

1、写一个EventBusUtil类

public class EventBusUtil {
    
    //注册方法
    public void register(Object target){
        if (EventBus.getDefault().isRegistered(target)) {
            EventBus.getDefault().register(target);
        }
        
    }
    //反注册方法
    public void unRegister(Object target){
        if (EventBus.getDefault().isRegistered(target)) {
            EventBus.getDefault().unregister(target);
        }
    }
    
    
    //post方法多次重载,每一种event事件都专门写一个post方法
    //这样方便我们管理和统计某一种类型的event事件在项目中有多少使用的地方
    //而新增一个post方法并不会浪费我们多少时间
    public void post(TestEvent testEvent){
        
    }

    public void post(TestEvent2 testEvent2){

    }

}

2、使用

//每一种Event都继承BaseEvent类
//BaseEvent类中声明一个eventId
  @Subscribe
    public void onXXX(TestEvent testEvent){
        //通过eventId来判断同一种事件类型的不同业务
        int eventId = testEvent.getEventId();

    }

经过改造过后的代码的确方便了很多,这只是本人一些浅薄的用法总结,欢迎各路大神赐教。

相关文章

  • EventBus使用的一个小技巧

    EventBus不用多说了,做Android开发的都知道。在我刚入行的时候,我是这样使用的 注册 这样注册没什么毛...

  • EventBus

    《EventBus使用详解(一)——初步使用EventBus》 《EventBus使用详解(二)——EventBu...

  • EventBus源码详解

    EventBus笔记 一、EventBus使用 EventBus使用有四步骤: 二、Eventbus.getDef...

  • EventBus详解

    一、EventBus使用 (1)EventBus作用 EventBus是一个Android事件发布/订阅轻量级框架...

  • EventBus的使用和理解

    为什么要使用EventBus?或者说使用EventBus有什么好处? 让我们带着问题去了解和使用EventBus。...

  • EventBus的使用,以及源码分析

    EventBus的使用,以及源码分析 EventBus的使用 EventBus能够简化各组件间的通信,能够有效的分...

  • EventBus全解析系列(一)

    前言 EventBus是一个Android开源库,其使用发布/订阅模式,以提供代码间的松耦合。EventBus使用...

  • EventBus使用技巧与心得

    在很久之前,我就听说过事件总线很好用(EventBus),但是我一直没真正在项目中用上它,直到有一天我接手了女朋友...

  • Android实际开发中,如何愉快的使用EventBus 3.+

    一、EventBus的使用场景 二、EventBus的介绍 三、EventBus的一般使用步骤(A->B:A页面接...

  • EventBus原理解析

    EventBus是一个Android开源库,其使用发布/订阅模式,以提供代码间的松耦合。EventBus使用中央通...

网友评论

      本文标题:EventBus使用的一个小技巧

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