按钮防多次重复点击对于App的设计者来说是一个十分常见的功能,如果一个按钮需要一定的响应时间(比如3秒),但在响应时间的过程中被多次点击了,这个问题就出现了
1、原先的解决办法
@BindView(R.id.btnNoMoreClick)
Button btnNoMoreClick;
btnNoMoreClick.setOnClickListener(
public void onClick(View v){
long nowTime=System.currentTimeMillis();
if(nowTime-TimeUtil.lastTime>3000){
doSomething();
TimeUtil.lastTime=nowTime;
}
}
);
public static class TimeUtil{
public static long lastTime=0l;
}
2、Rx的方案
RxView.clicks(btnNoMoreClick).throttleFirst(3,TimeUnit.SECONDS).subscribe(new Observer(Void){
public void onCompleted(){
}
public void onError(){
}
public void onNext(){
doSomething();
}
}
);