У меня общая проблема с первого дня, когда я начинаю кодировать: избегайте обработки события (нажатия кнопки, ..) несколько раз. Большую часть времени я придумываю простое решение (которое добавляет проверяемый логический флаг), например:
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;
}
Это работало нормально. Но когда класс go стал больше с большим количеством функций и событий, все пошло не так. Нам нужно создать слишком много логических флагов , которые ничего не значат для бизнеса, и не должно быть полем этого класса .
У кого-нибудь есть лучшее решение для этого?