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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容