Лучшие практики для отсрочки выполнения программы на Java (Android) - PullRequest
0 голосов
/ 04 октября 2011

Я создаю приложение для викторины для Android.

У пользователя есть 30 секунд, чтобы ответить на столько вопросов, сколько он может.

Я создаю небольшой разрыв во времени выполнения между вопросами, поэтомупользователь может увидеть, правильно ли он понял вопрос:

new Handler().postDelayed(new Runnable() {  
   public void run()  { displayNextQuestion(); }
    } , 1000);

По истечении 30 секунд пользователь должен быть перенаправлен на экран результатов.Однако, если 30 секунд истекают в течение этого времени ожидания, то пользователь на мгновение выводится на экран результатов, а затем перенаправляется к следующему вопросу.Как я могу отключить момент ожидания по истечении 30 секунд?

Должен быть простой ответ, я просто не знаю, как работать с потоками / выполнением.

Спасибо

Ответы [ 2 ]

1 голос
/ 04 октября 2011

Вы можете сохранить ваш runnable и обработчик в переменных экземпляра и вызвать myHandler.removeCallbacks(myRunnable), чтобы отменить ожидающее действие.

1 голос
/ 04 октября 2011

Просто используйте логическое значение, чтобы проверить, должны ли отображаться результаты, а затем сделайте что-то вроде if (! ResultsDisplayed) {displayNextQuestion ();}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...