ladingwu / SimpleRxBusApplication

an easy bus

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SimpleRxBus

一个更加简单易用的RxBus

  • 使用简介

    • 集成
     //请确保原来项目中已经引入了RxJava2.0+的依赖,如没有,请引入
    implementation 'com.ladingwu.library:SimpleRxBus:0.3'
     // 需要v7的support包,如果原项目中已经存在,则不必引入
    implementation 'com.android.support:appcompat-v7:28.0.0'
    
    
    
    • 发送普通事件
    RxBusUtils.post("filter_message",mesage);
    
    • 接收事件(自动取消订阅)
    // in Fragment or FragmentActivity
     RxBusUtils.receive(this,"filter_message", new RxBusReceiver<Object>() {
                @Override
                public void receive(Object message) {
                    // handle this
                }
            });
    
    • 发送粘性事件
    RxBusUtils.postSticky("filter_sticky_message",message);
    
    • 接收粘性事件(自动取消订阅)
    // in Fragment or FragmentActivity
    RxBusUtils.receiveSticky(this,"filter_message", new RxBusReceiver<Object>() {
                @Override
                public void receive(Object message) {
                        // handle this
                }
            });
    
    • 特殊情况
    //如果无法拿到Fragment/FragmentActivity的实例,则接收事件的时候,需要自行处理取消注册的工作
        Disposable disposable = RxBusUtils.receive("filter", new RxBusReceiver<Object>() {
            @Override
            public void receive(Object data) {
                // handle this
            }
        });
    
        // 在合适的时机取消注册
        if (disposable != null && !disposable.isDisposed()) {
            disposable.dispose();
        }
    
  • SimpleRxBus的优点

    • 简单,好用,支持普通事件/粘性事件的收发
    • 无需显式的调用注册和取消注册接口,框架会自动注册,并且根据生命周期会自动取消注册
    • 即插即用,无论是新项目还是老项目,都不需要做额外的处理,在这一点上,对老项目尤为友好

About

an easy bus

License:MIT License


Languages

Language:Java 96.6%Language:Kotlin 3.4%