所以从我的视图模型中,我在另一个类中调用我的Observable:
getAuthentication.kickoff()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<RxOkHttpResponse>() {
@Override
public final void onCompleted( ) {
getAlbums();
}
@Override
public final void onError(Throwable e) {
userMsgHandler.showToast(mParent,mParent.getString(R.string.error_cannot_authenticate));
}
@Override
public final void onNext(RxOkHttpResponse response) {
mSubscription = response.subscription;
}
});
所以这个调用显然会返回一个Observable。所以我想知道什么是最简单的方法来调用此Observable上的subscriber.unsubscribe()返回或者是否有方法(现在我将它返回onNext - 但我不高兴那个)
那么有没有办法格式化代码以在成员变量中存储.subscribe():
.observeOn(AndroidSchedulers.mainThread())
mSubscriber = .subscribe(new Subscriber<RxOkHttpResponse>() {
...
我正在使用v 1.1.0
答案 0 :(得分:2)
答案取决于您是使用RxJava 1还是2.如果是RxJava 1 subscribe()
将返回Subscription
实例,然后您可以调用unsubscribe()
。但是对于RxJava 2,我认为您需要添加onSubscribe()
答案 1 :(得分:0)
这是我正在寻找的语法:
mSubscriber = ( getAuthentication.kickoff()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
).subscribe(new Subscriber<RxOkHttpResponse>() {
...
现在我可以轻松地将mSubscriber存储在我的视图模型中,以便在我的Activity中使用OnDestroy()触发清理