(三)RxJava操作符:Buffer



Buffer操作符:

1、buffer(count):每接收到count個數據包裹,將這count個包裹打包,發送給訂閱者
      案例:點擊按鈕達到指定次數後,觸發某事件(即:View的N連擊事件)
RxView.clicks(btn_buffer_count)
.buffer(3)
.compose(this.<List<Void>>bindToLifecycle())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<List<Void>>() {
@Override
public void call(List<Void> voids) {
Toast.makeText(BufferFragment.this.getActivity(), R.string.des_demo_buffer_count, Toast.LENGTH_SHORT).show();
}
});

2、Buffer(count , skip):每接收到count個數據後,將該count的個數據打包,並跳過第skip個數據,發送給訂閱者
    案例:輸入123456 , 兩兩發送,並跳過之後的一個數據,即最後訂閱者接收到[1,2] [4,5] 兩個數據包裹, 3和6 分別被跳過
Observable.from(chs)
.buffer(2, 3)
.compose(this.<List<Character>>bindToLifecycle())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<List<Character>>() {

@Override
public void call(List<Character> characters) {
tv_output.setText(tv_output.getText() + characters.toString());
}
});
效果圖:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章