如何计算observable的执行时间

我正在寻找解决方案来衡量一些任务的执行情况

  1. 我想在某个地方开始计时
  2. 我想执行一些任务
  3. 在代码的不同部分,我希望能够停止计时器,我得到执行最终执行时间的结果

我猜这可能是真的使用EventBus来发布开始计数和停止事件。

所以我可以有一个功能:

doSomething(){ //start counting } 

在ohter函数中我想访问计数器并调用stop:

 otherFunctionWhichCanBeInvokedLater(){ //stop counter and get the duration time } 

有没有很好的方法来实现这个在Rx? 我想为此使用Kotlin和RxJava2。

如何使用doOnXXX挂钩,如下所示:

 fun startTimer() { //start counting } fun stopTimer() { //stop counter and get the duration time } fun observe() { Observable.just(...) .doOnSubscribe { startTimer() } .doFinally { stopTimer() } .subscribeBy(...) } 

根据您的要求,您可以使用doOnComplete和/或doOnError进行设置,以doOnComplete doOnError