Observable<ScanResult> scanResultStream( UUID uuid ) {
return Observable.create( new AsyncOnSubscribe<Boolean, Subscriber<ScanResult>>() {
@Override
Boolean next( Boolean previousState, long requested, Observer<Observable<Subscriber<ScanResult>>> sub) {
return true;
}
});
}
已经尝试了我能想到的所有内容,但无法将其编译为常规,RxJava文档通常不是很有帮助,我找不到更好的示例或解释。
问题似乎在于<T>
的第二个构造函数类型参数AsyncOnSubscribe
,文档中说的是“Subscriber
与此类型兼容的类型”。从字面上看,我认为这应该是<Subscriber<ScanResult>>
,但这不起作用。我得到一个消息,该类必须被声明为abstract或实现next(S, long, Observer<Observable<? extends T>>)
,但是
从字面上理解 this ,我的方法签名应该是next(Boolean previousState, long requested, Observer<Observable<Subscriber<ScanResult>>> obs)
,但这会产生消息'方法不覆盖其超类的方法'。
我还得到'未选中的作业:'rx.Observable<T>
到rx.Observable<com.polidea.rxandroidble.scan.ScanResult
'。
如果我能找到AsyncOnSubscribe
的明确解释,或许我可以解决这个问题。 (这一切都是在我想使用Observable.create( Observable.OnSubscribe)
时开始的,但发现它已被弃用。)
答案 0 :(得分:0)
环境:
RxJava 1.3.4
结果
Observable<ScanResult> scanResultStream(UUID uuid) {
Observable<ScanResult> scanResultObservable =
Observable.create(
new AsyncOnSubscribe<Boolean, ScanResult>() {
@Override
protected Boolean generateState() {
return null;
}
@Override
protected Boolean next(
Boolean state,
long requested,
Observer<Observable<? extends ScanResult>> observer) {
return null;
}
});
return scanResultObservable;
}