RxJava实现指定时间内的点击计数

2017-03-19  本文已影响0人  逍遥天_lpc
RxView.clicks(rl).map(new Function<Object, Integer>() {
    @Override
    public Integer apply(Object o) throws Exception {
        return 1;
    }
}).scan(new BiFunction<Integer, Integer, Integer>() {
    @Override
    public Integer apply(Integer integer, Integer integer2) throws Exception {
        return ++integer;
    }
}).sample(3, TimeUnit.SECONDS).subscribe(new Consumer<Integer>() {
    @Override
    public void accept(Integer integer) throws Exception {
        //差值即为点击次数
        Log.i("lpc", "" + (integer - defaultVlaue));
        //重新赋值,作为下一次的减数
        defaultVlaue = integer;
    }
});

defaultValue初始值为0

上一篇 下一篇

猜你喜欢

热点阅读