2016-07-27 236 views
2

我重寫我的調度測試用:RxJavaPlugins.getInstance已被棄用

RxJavaPlugins.getInstance().registerSchedulersHook(object : RxJavaSchedulersHook() { 
    override fun getIOScheduler() = Schedulers.immediate() 
    override fun getComputationScheduler() = Schedulers.immediate() 
    override fun getNewThreadScheduler() = Schedulers.immediate() 

    }) 

但是文檔說:

棄用使用RxJavaHooks的靜態方法。

如何使用RxJavaHooks覆蓋那些調度程序?

回答

10

Release notes for 1.1.7包含代碼示例如何在java中執行此操作。小摘錄設置計算調度:

RxJavaHooks.setOnIOScheduler(current -> Schedulers.immediate()) 
RxJavaHooks.setOnComputationScheduler(current -> Schedulers.immediate()) 
RxJavaHooks.setOnNewThreadScheduler(current -> Schedulers.immediate()) 

還有

默認情況下,所有RxJavaHooks委託原來的RxJavaPlugins 回調,所以如果你有鉤的老辦法,他們仍然可以工作。 RxJavaHooks.reset()重置爲該代表團,並且RxJavaHooks.clear() 清除所有掛鉤(即,一切都變成傳遞掛鉤)。