У меня есть 4 кнопки, каждая из которых выполняет свое действие (скажем, каждое действие занимает 2 минуты)
Когда я нажимаю обе кнопки (с несколькими минутами между ними), они все равно попадают в часть «если», хотя флаг, который я поставил.
Вот часть моего кода:
southToNorth.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
north.incCounter();
north.setWaitingState(true);
pushToQueue(1);
if (isWorking==0) {
isWorking++;
start();
}
}
});
westToEast.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
east.incCounter();
east.setWaitingState(true);
pushToQueue(2);
if (isWorking==0) {
isWorking++;
start();
}
}
});
Я не думаю, что это проблема синхронизации, я даже поместил этот код в начало функции запуска:
private void start() {
if(isWorking>1)
return;
но, тем не менее, оба они выполняют все функции запуска, чего я пытаюсь избежать.
(у меня глобальный флаг "int isWorking" инициализирован нулем)
Почему они оба попадают внутрь части if? Как я могу решить это?
Большое спасибо!