Android 在解盎司超时之前调用RxSeekBar onNext(非常不一致)
我正在开发AndroidTv,使用标准的Android 在解盎司超时之前调用RxSeekBar onNext(非常不一致),android,rx-java2,rx-binding,Android,Rx Java2,Rx Binding,我正在开发AndroidTv,使用标准的seekBar进行播放 这就是我使用RxSeekBar的方式 RxSeekBar.changeEvents(seekBar) .debounce(SEEKBAR_DEBOUNCE_TIME, TimeUnit.MILLISECONDS) .observeOn(AndroidSchedulers.mainThread()) .subscribe(new Observer<SeekB
seekBar
进行播放
这就是我使用RxSeekBar的方式
RxSeekBar.changeEvents(seekBar)
.debounce(SEEKBAR_DEBOUNCE_TIME, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<SeekBarChangeEvent>() {
@Override
public void onSubscribe(Disposable disposable) {
compositeDisposable.add(disposable);
}
@Override
public void onNext(SeekBarChangeEvent seekBarChangeEvent) {
if (seekBarChangeEvent instanceof SeekBarProgressChangeEvent) {
if (seekBar.hasFocus()) {
DebugLog.d(TAG, "(PROGRESS) SeekBarProgressChangeEvent");
seekBarSeekProgress = seekBarChangeEvent.getView().getProgress();
onSeek();
}
}
}
@Override
public void onError(Throwable e) {
DebugLog.d(TAG, "RxSeek error - " + e.getMessage());
}
@Override
public void onComplete() {
}
});
RxSeekBar.changeEvents(seekBar)
.debounce(SEEKBAR_debounce_TIME,TimeUnit.ms)
.observeOn(AndroidSchedulers.mainThread())
.订阅(新观察员){
@凌驾
订阅时的公共作废(一次性){
可合成。添加(一次性);
}
@凌驾
public void onNext(seekbarchanegevent seekbarchanegevent){
if(seekbarrangeevent实例seekbarprogresschangevent){
if(seekBar.hasFocus()){
DebugLog.d(标记“(进度)SeekBarProgressChangeEvent”);
seekBarSeekProgress=seekbarchanegevent.getView().getProgress();
onSeek();
}
}
}
@凌驾
公共无效申报人(可丢弃的e){
DebugLog.d(标记“RxSeek error-”+e.getMessage());
}
@凌驾
未完成的公共空间(){
}
});
基本上,我想在去盎司超时后更新东西。这可以正常工作7/10次
,但有时会过早调用onNext
,导致事情失控
我做错什么了吗 尝试在OnComplete中执行此操作OnComplete从不调用,只在每次解盎司超时时调用onNext。此外,我每1秒更新一次seekBar以播放音乐,你说的“过早”是什么意思?在解盎司周期到来之前,如果是这样,则表明RxJava解盎司存在问题,但可能性不大?可能的原因是您的解盎司不够长,因此有时它可以工作,而另一些则不行-它应该至少高于1秒的更新间隔时间,否则在手动更新搜索栏时,您将进入一个连续的事件循环。.尝试在onCompleteonComplete中执行操作从不调用OnComplete,只有onNext被称为every debounce TimeOut。此外,我每1秒更新一次seekBar,用于音乐播放。在debounce周期达到之前,您所说的“过早”是什么意思?如果是这样的话,则表明RxJava debounce存在问题,但可能性不大?可能的原因是您的去抖动时间不够长,因此,有时它可以工作,而另一些则不能工作-它至少应高于1秒的更新间隔时间,否则,当您手动更新搜索栏时,您将进入一个连续的事件循环。。