RxBus简单入门

RxBus开源地址:https://github.com/AndroidKnife/RxBus

参考文章: 1. Rxbus事件交互 

                2. 关于RxBus的一些使用心得

主要作用

 使用注解的方式实现页面间/页面内传值,可以使用tag对消息进行标记,可以指定线程。

实践使用

 参照RxBus官方文档,将RxBus引入工程

 STEP1 :gradle 引入依赖 compile 'com.hwangjr.rxbus:rxbus:1.0.3'

如果工程中使用了 AndroidKnife/Utils/timber,需要将依赖修改成如下:

       compile ('com.hwangjr.rxbus:rxbus:1.0.3') {

            exclude group: 'com.hwangjr.utils', module: 'timber'

        }

STEP2: 直接使用架包提供的 com.hwangjr.rxbus.RxBus 或 自己写一个RxBus单例(官方推荐),实现如下:

public static final class RxBus {

        private static Bus sBus;

       public static synchronized get() {

               if (sBus == null) {

                     sBus = new Bus();

               }

              return sBus;

       }

}

STEP3: 在Activty/Fragment 中使用RxBus,这里的this不是特指Activity,所以在Fragment中不需要用getActivity();(参考2)

    在onCreate()中调用RxBus.get().register(this);    进行注册操作。

    在onDestory()中进行RxBus.get().unregister(this);     解绑操作。

STEP4: 在任何需要监听处理事件的地方,添加如下代码,实现收到消息的处理事件:

@Subscribe

public void Function(String param) {  // 这里也可以写成(String tag, Object param)

          // TODO

}

STEP5: 在需要发送消息的地方使用 RxBus.get().post(param); or RxBus.get().post(tag, param); // post发消息是主线程


PS:还有一种使用注解发消息的方式,这种方式貌似只适用于在页面初始化的时候,不能手动控制,但是可以指定线程和tag

例:

监听实现

//接收一个列表参数,并且限制这个接收线程是IO,标记为BusAction.EAT_MORE ,标记需要和发送者一致,线程不要需要

@Subscribe(

    thread = EventThread.MAIN_THREAD,

    tags = {  @Tag(BusAction.EAT_MORE)  }

)

public void receiveFunction(Object param) {

      // TODO

}

消息发送

@Produce

public Object sendFunction() {

       // TODO

       return param;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,072评论 19 139
  • 一. Java基础部分.................................................
    wy_sure阅读 9,291评论 0 11
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,080评论 25 709
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,016评论 18 399
  • 晴18/31°,体感温度22°,空气质量64良,湿度75%,东风4级,日出05:06日落18:45。 今天买了10...
    光锋容阅读 1,288评论 0 0

友情链接更多精彩内容