テストデバイスの画面は、単にアイテムを発光停止オフラインとデバッグから外れ、観察可能です。デバイスがオンになっていると、オブジェクトの開始が発生します。 もう一つの問題は、randomically recivingアイテムを停止する前に、私は同じ項目の詳細を与えるために別のポストを行うRxJava観測問題
Observable.interval(4000,
30000, TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.doOnError(ErrorResponse.handleError()).subscribe(new Action1() {
@Override
public void call(Object o) {
statusSender.doNetworkCallAndGetStringResult();
}
});
__________________________________EDIT__________________________________
の順に2/3の重複呼び出しを得ることです。私はあなたに完全なログを与えることはできませんが、私は問題がObservableであることを確認するために何をしたかを説明しようとします。
次私はgetObserver方法は、私は内部の私のネットワーク呼び出しを行うことの違いとasExampleあるRxjava2
isposables.add(statusSender.getObservable(certificate)
.subscribeOn(io.reactivex.schedulers.Schedulers.io())
.observeOn(io.reactivex.android.schedulers.AndroidSchedulers.mainThread())
.subscribeWith(getObserver()))
getObservable方法
return io.reactivex.Observable.interval(INITIAL_DELAY,Utilities.getInstance().getHeartbeatFrequency(),TimeUnit.MILLISECONDS);
と異なる実装をしようと試みonNext
private DisposableObserver<Long> getObserver() {
return new DisposableObserver<Long>() {
@Override
public void onNext(Long value) {
Log.d(TAG, " onNext : value : " + value);
statusSender.doNetworkCallAndGetStringResult();
}
@Override
public void onError(Throwable e) {
Log.d(TAG, " onError : " + e.getMessage());
}
@Override
public void onComplete() {
Log.d(TAG, " onComplete");
}
};
}
デバイスの画面は、単にアイテムを発光停止オフラインおよびデバッグから外れ、観測可能である場合には
サブスクライバは何をしていますか?あなたはこの観察可能な部分をどこから退会/再購読しますか?あなたは「アイテムを受け取るのを止める前に」ってどういう意味ですか? – yosriz
申し訳ありませんが、私はすべての情報を与えませんでした。私の加入者は、サーバーにデバイスが生きていることを知らせるために、リモートサーバーにpingを送信します。私はサーバーで – Federik
の「アイテムを受け取っています」ということは、Observableがアイテムを送信しない、またはサーバーがpingを取得しなかったことを意味しますか? Observableが重複したアイテムを出すか、サーバーが重複したアイテムを受け取ったかどうかを確認します。 – yosriz