kotlin - 如何计算 observable 的执行时间

标签 kotlin rx-java rx-java2

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

  • 我想在某个地方启动计时器
  • 我要执行一些任务
  • 在代码的不同部分,我希望能够停止计时器,我得到执行最终执行时间结果

  • 我想这与使用 EventBus 发布开始计数和停止事件非常相似。

    所以我可以有一个功能:
    doSomething(){
    //start counting
    }
    

    在其他函数中,我想访问计数器并在其上调用 stop:
    otherFunctionWhichCanBeInvokedLater(){
    //stop counter and get the duration time
    }
    

    有没有很好的方法在 Rx 中完成这个?
    我想为此使用 Kotlin 和 RxJava2。

    最佳答案

    使用 doOnXXX 怎么样?钩子(Hook),像这样:

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

    根据您的要求,您可以替换 doOnFinally使用 doOnComplete 的设置和/或 doOnError .

    关于kotlin - 如何计算 observable 的执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47212436/

    相关文章:

    java - RxJava : retrying map actions

    java - Flowable 中的所有项目都发出后,如何发出最终项目

    android - 电话API无效

    Kotlin 没有看到 Java Lombok 访问器?

    Android VideoView 及时跳转

    kotlin - 我可以将Kotlin中具有默认参数的函数的函数引用作为无参数函数得到吗?

    java - 寻找 Rxjava 运算符将源合并到一个流中

    java - 带改造的 Rxjava - zip() - 如何绕过错误响应

    android - subscribe 的结果没有被使用

    java - RxJava Flowable 缓存到单一死锁