Android开发Android开发经验谈Android技术知识

RxBus for Android

2018-05-29  本文已影响10人  汉之风云

通过RxBus来实现事件的通知和订阅,简化应用组件间的通信,解耦事件的发送者和接收者,避免复杂和容易出错的依赖和生命周期的问题.

1. 依赖方式Dependency

1.1 Maven

    <dependency>
      <groupId>com.hanzhifengyun</groupId>
      <artifactId>rxbus</artifactId>
      <version>1.0.0</version>
      <type>pom</type>
    </dependency>

1.2 Gradle

compile 'com.hanzhifengyun:rxbus:1.0.0'

2 如何使用Use

2.1 在合适的时机注册

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //在页面创建时订阅
    RxBus.getInstance().register(this);
}

2.2 在合适的时机解除注册

@Override
protected void onDestroy() {
    super.onDestroy();
    //在页面销毁时解除订阅,防止页面销毁后导致内存溢出
    RxBus.getInstance().unRegister(this);
}

2.3 如何发送事件

2.4 如何接收事件

  1. 在已经注册过的类中自定义一个public方法,方法名随意,参数填写需要接收数据的类型.
  2. 在方法上添加注解OnSubscribe,表示接收订阅的信息:
    • code: 用于区分发送的不同事件的标识,int类型
    • threadType: 标识事件接收时回调在什么线程

2.5 例子:

  1. 只关心事件类型,不包含数据
  1. 只关心事件数据
  1. 只关心特定的事件类型和特定的数据

具体实现感兴趣的可以查看源码,希望对大家的学习有所帮助。

项目地址: https://github.com/hanzhifengyun/RxBus

上一篇 下一篇

猜你喜欢

热点阅读