在 RxJava(2) 中,有没有一种方法可以跟踪谁在 Subject 上调用了 onNext()?

Is there a way to trace who invoked onNext() on a Subject, in RxJava(2)?

我正在使用 RxJava2 开发一个 Android 应用程序(不过没关系),在一些单例中有一些 PublishProcessors.

并且在整个项目中对这些 PublishProcessor 进行了很多 .onNext() 调用。

现在为了调试,我需要知道在每次 .onNext() 调用时,我项目中的哪一行调用了此 .onNext()

我可以在 RxJava(2) 中实现这个目标吗?

我认为您可以使用 Debug 菜单中的 Frames 选项卡。
例如,在这种情况下,MainActivity 第 18 行触发 onNext

啊,感谢@PhanVanLinh,我找到了适合我的解决方案。

(其实跟RxJava没什么关系...)

你只需要使用 Thread.currentThread.stackTrace 打印堆栈跟踪并将其打印到你自己的字符串中 doOnNext(),但记得在 before .observeOn() 为了线程不会切换,它必须停留在调用.onNext()的原始线程,否则你将无法获得有意义的信息。

然后你就会知道调用.onNext().

的那一行