自定义单击侦听器可防止多次快速单击
为了防止按钮在短时间内多次触发 (假设在 1 秒内发生 2 次点击,如果流量不受控制可能会导致严重问题),可以实现自定义 SingleClickListener 。
此 ClickListener 将特定时间间隔设置为阈值(例如,1000 毫秒)。
单击该按钮时,将运行检查以查看触发器是否在你定义的过去时间内执行,如果不是,则会触发它。
public class SingleClickListener implements View.OnClickListener {
protected int defaultInterval;
private long lastTimeClicked = 0;
public SingleClickListener() {
this(1000);
}
public SingleClickListener(int minInterval) {
this.defaultInterval = minInterval;
}
@Override
public void onClick(View v) {
if (SystemClock.elapsedRealtime() - lastTimeClicked < defaultInterval) {
return;
}
lastTimeClicked = SystemClock.elapsedRealtime();
performClick(v);
}
public abstract void performClick(View v);
}
在类中,SingleClickListener 与 Button 相关联
myButton = (Button) findViewById(R.id.my_button);
myButton.setOnClickListener(new SingleClickListener() {
@Override
public void performClick(View view) {
// do stuff
}
});