[关闭]
@cxm-2016 2016-11-28T09:33:21.000000Z 字数 1614 阅读 2185

RxJava学习指南(十五)——自定义插件

RxJava学习指南

版本:1
整理:陈小默


插件让你可以用多种方式修改RxJava的默认行为:

RxJavaSchedulersHook

这个插件让你可以使用你选择的调度器覆盖默认的计算、IO和新线程调度 (Scheduler),要做到这些,需要继承 RxJavaSchedulersHook 类并覆写这些方法:

然后是下面这些步骤:

  1. 创建一个你实现的 RxJavaSchedulersHook 子类的对象。
  2. 使用 RxJavaPlugins.getInstance( ) 获取全局的RxJavaPlugins对象。
  3. 将你的默认调度器对象传递给 RxJavaPluginsregisterSchedulersHook( ) 方法。

完成这些后,RxJava会开始使用你的方法返回的调度器,而不是内置的默认调度器。

RxJavaErrorHandler

这个插件让你可以注册一个函数处理传递给 Subscriber.onError(Throwable) 的错误。要做到这一点,需要继承 RxJavaErrorHandler 类并覆写这个方法:

然后是下面这些步骤:

  1. 创建一个你实现的 RxJavaErrorHandler 子类的对象。
  2. 使用 RxJavaPlugins.getInstance( ) 获取全局的RxJavaPlugins对象。
  3. 将你的错误处理器对象传递给 RxJavaPluginsregisterErrorHandler( ) 方法。

完成这些后,RxJava会开始使用你的错误处理器处理传递给 Subscriber.onError(Throwable) 的错误。

RxJavaObservableExecutionHook

这个插件让你可以注册一个函数用于记录日志或者性能数据收集,RxJava在某些常规活动时会调用它。要做到这一点,需要继承 RxJavaObservableExecutionHook 类并覆写这些方法:

方法 何时调用
onCreate() 在Observable.create()方法中
onSubscribeStart() 在Observable.subscribe()之前立刻
onSubscribeReturn() 在Observable.subscribe()之后立刻
onSubscribeError() 在Observable.subscribe()执行失败时
onLift() 在Observable.lift()方法中

然后是下面这些步骤:

  1. 创建一个你实现的 RxJavaObservableExecutionHook 子类的对象。
  2. 使用 RxJavaPlugins.getInstance( ) 获取全局的RxJavaPlugins对象。
  3. 将你的Hook对象传递给 RxJavaPluginsregisterObservableExecutionHook( ) 方法。

When you do this, RxJava will begin to call your functions when it encounters the specific conditions they were designed to take note of.
完成这些后,在满足某些特殊的条件时,RxJava会开始调用你的方法。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注