杀死一个 Observable
To Kill an Observable
请原谅双关语,不得不对他们这样做。
我有一个像这样声明的可观察对象:
Observable
.interval(20, TimeUnit.MILLISECONDS)
.subscribe {
val timeDiff = System.currentTimeMillis() - testSum
Log.i("LOG", "TIME DIFF: $timeDiff")
testSum = System.currentTimeMillis()
mVisualizer.getWaveForm(waveformByteArray)
onWaveFormDataCaptureManual(waveformByteArray)
}
而且无论我尝试做什么,这个 observable 都不会死。 disposables.add() (这似乎是 Java 中的答案)给我一个未解决的参考错误。在此之前,我什至无法将其保存到变量中,因为它在屏幕上也会显示很多红色。
仅供参考,我用谷歌搜索了这个问题。没有任何效果。
您需要将输出一次性处理掉
import io.reactivex.disposables.Disposable //required import
var diposable:Disposable?=null //global variable
disposable= Observable
.interval(20, TimeUnit.MILLISECONDS)
.subscribe {
val timeDiff = System.currentTimeMillis() - testSum
Log.i("LOG", "TIME DIFF: $timeDiff")
testSum = System.currentTimeMillis()
mVisualizer.getWaveForm(waveformByteArray)
onWaveFormDataCaptureManual(waveformByteArray)
}
配置使用
disposable?.dispose()
如果你有多个一次性用品,那么你可以使用CompositeDisposable
var compositeDisposable:CompositeDisposable= CompositeDisposable()
val disposable= Observable
.interval(20, TimeUnit.MILLISECONDS)
.subscribe {
val timeDiff = System.currentTimeMillis() - testSum
Log.i("LOG", "TIME DIFF: $timeDiff")
testSum = System.currentTimeMillis()
mVisualizer.getWaveForm(waveformByteArray)
onWaveFormDataCaptureManual(waveformByteArray)
}
compositeDisposable.add(disposable)
// you can add as many disposables as you want
处置使用
compositeDisposable.dispose() //every thing is disposed
请原谅双关语,不得不对他们这样做。
我有一个像这样声明的可观察对象:
Observable
.interval(20, TimeUnit.MILLISECONDS)
.subscribe {
val timeDiff = System.currentTimeMillis() - testSum
Log.i("LOG", "TIME DIFF: $timeDiff")
testSum = System.currentTimeMillis()
mVisualizer.getWaveForm(waveformByteArray)
onWaveFormDataCaptureManual(waveformByteArray)
}
而且无论我尝试做什么,这个 observable 都不会死。 disposables.add() (这似乎是 Java 中的答案)给我一个未解决的参考错误。在此之前,我什至无法将其保存到变量中,因为它在屏幕上也会显示很多红色。
仅供参考,我用谷歌搜索了这个问题。没有任何效果。
您需要将输出一次性处理掉
import io.reactivex.disposables.Disposable //required import
var diposable:Disposable?=null //global variable
disposable= Observable
.interval(20, TimeUnit.MILLISECONDS)
.subscribe {
val timeDiff = System.currentTimeMillis() - testSum
Log.i("LOG", "TIME DIFF: $timeDiff")
testSum = System.currentTimeMillis()
mVisualizer.getWaveForm(waveformByteArray)
onWaveFormDataCaptureManual(waveformByteArray)
}
配置使用
disposable?.dispose()
如果你有多个一次性用品,那么你可以使用CompositeDisposable
var compositeDisposable:CompositeDisposable= CompositeDisposable()
val disposable= Observable
.interval(20, TimeUnit.MILLISECONDS)
.subscribe {
val timeDiff = System.currentTimeMillis() - testSum
Log.i("LOG", "TIME DIFF: $timeDiff")
testSum = System.currentTimeMillis()
mVisualizer.getWaveForm(waveformByteArray)
onWaveFormDataCaptureManual(waveformByteArray)
}
compositeDisposable.add(disposable)
// you can add as many disposables as you want
处置使用
compositeDisposable.dispose() //every thing is disposed