我正在使用RxJava来计算Android中某些传感器数据的标准化自动关联.奇怪的是,我的代码抛出一个异常("java.lang.IllegalStateException:只允许一个订阅者!")并且我不确定该怎么做:我知道GroupedObservables在订阅我的多个订阅者时可能抛出此异常,但是我不认为我在任何地方都在使用这样的东西.
您可以在下面找到(最有可能)触发异常的方法:
public Observable<Float> normalizedAutoCorrelation(Observable<Float> observable, final int lag) {
Observable<Float> laggedObservable = observable.skip(lag);
Observable<Float> meanObservable = mean(observable, lag);
Observable<Float> laggedMeanObservable = mean(laggedObservable, lag);
Observable<Float> standardDeviationObservable = standardDeviation(observable, meanObservable, lag);
Observable<Float> laggedStandardDeviationObservable = standardDeviation(laggedObservable, laggedMeanObservable, lag);
Observable<Float> deviation = observable.zipWith(meanObservable, new Func2<Float, Float, Float>() {
@Override
public Float call(Float value, Float mean) {
return value - mean;
}
});
Observable<Float> laggedDeviation = observable.zipWith(laggedMeanObservable, new Func2<Float, Float, Float>() {
@Override
public Float call(Float value, Float mean) {
return value - mean; …Run Code Online (Sandbox Code Playgroud)