Почему бы не сделать проще?
Используйте флаг boolean
в качестве флага для проверки при запуске процесса. И если он запущен, не запускайте его, пока предыдущий процесс не завершится.
Приведенный ниже пример кода гарантирует, что при выполнении задачи onClickListener()
просто не будет запускаться. Не нужно беспокоиться об отключении, а затем снова включать его.
EDIT:
После продолжительного обсуждения (в комментариях), с Zabri. Просто для ударов я попробовал решение, которое я изначально разместил. И, как выясняется, он был в порядке в конце концов. :-(
я неправильно в исходном растворе (который был тестировался, но б ого-го ко мне). Так что время, чтобы всасывать и опубликовать работу и испытания решения.
Полного реквизит для Zabri для указывая на очевидный недостаток в коде :-)
Например (ПРОВЕРЕНО кОД):.
boolean taskRunning = false;
button1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (taskRunning == false) {
// TOGGLE THE boolean HERE TO INDICATE RUNNING
taskRunning = true;
///do stuff
// TOGGLE THE boolean HERE TO INDICATE TASK COMPLETED
taskRunning = false;
}
}
});
Как уже упоминалось, это непроверенный код. Я просто напечатал его здесь.
Да. вы можете это сделать. Вместо «кнопки» используйте «v» (View v). Откроется обратная функция функции переопределения, которая нажата. –
вы хотите, чтобы ваша кнопка нажала один раз или twise – Unknown