Мне интересно, можно ли сделать так, чтобы код в слушателе событий значения происходил только один раз.
У меня есть слушатель значений, который проверяет, нажали ли 2 игрока в игре *Кнопка 1003 *.Если это так, то произойдет код в слушателе, и это хорошо, но я хочу, чтобы это произошло только один раз.
Проблема в том, что условия в слушателе выполняются, код выполняется снова и снова инад.Это упрощенная версия прослушивателя
games.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull final DataSnapshot dataSnapshot) {
HomePage.getCurrentGameID(new HomePage.CallbackID() {
@Override
public void onSuccess(final String currentGameID) {
if(dataSnapshot.child(currentGameID.child("ready").getValue().equals(true)) {
runCounter();
Log.i("FlipCoin", "``ButtonClickListener happened");
}
}
});
SO, если условия в операторе if выполнены, код внутри оператора if запускается снова и снова.Я знаю, что это происходит, потому что я поместил оператор log в оператор, и он продолжает печатать в журнале.
Как я могу сделать так, чтобы этот код срабатывал только один раз, пока не будет предложено запустить снова?Я знаю, что один метод мог бы установить условие в операторе if на false
сразу после выполнения кода, но это создает проблемы, так как мне нужно, чтобы значение читалось как true, чтобы другие методы в моем коде работали