java是防止重复事件句柄的好方法
从开始编写代码的第一天起,我就遇到了一个常见问题:避免处理事件(单击按钮,…)多次。大多数情况下,我会想出一个简单的解决方案(添加一个布尔标志进行检查),如下所示:
private boolean isProcessingClick = false;
@Override
public void onClick(View v) {
onLoginButtonClick();
}
private void onLoginButtonClick() {
if (isProcessingClick)
return;
isProcessingClick = true;
// Do something..
// Update some UIs..
isProcessingClick = false;
}
这很有效。但随着班级规模的扩大,更多的功能&;一切都开始出问题了。我们需要创建太多的布尔标志,这与业务无关,不应该是此类的字段
有谁有更好的解决方案吗
# 1 楼答案
包装器可以支持该限制(如果需要单独保护每个按钮的点击)
我不是安卓开发者,所以使用
AtomicBoolean
来防止不同线程调用“onClick”