測試在Android 6.0.1三星S6邊緣+ RxJava可觀察到的問題
當設備屏幕處於脫機狀態,並且已從電源調試,可觀察到的只是停止發射項目。如果設備打開,對象開始被髮射。 另一個問題是,randomically停止reciving項目之前,我得到2/3重複調用在同一項目
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__________________________________
做另一篇文章的順序透露更多的細節。我不能給你完整的日誌,但我會盡力解釋我已經做了什麼來確保問題是可觀察的。
以下
我tryed不同的實現與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);
getObserver方法是asExample有區別,我做在我的網絡電話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