2013-05-17 3 views
-1

Я играл немного с CountDownTimer. Тем не менее, для специального приложения мне нужны следующие функциональные возможности:Random CountDownTimer Loop

  1. Start CountDownTimer со случайным выполнения
  2. Beep когда закончил
  3. Подождите 5 секунд
  4. Beep снова GOTO 1.

Эта процедура должна начинаться с кнопки и также должна быть отменена с помощью кнопки. Я нашел сообщение здесь с зацикленным CountDownTimer, но это не работает со случайным временем выполнения.

+0

для таймера coutdown начинаются здесь http://developer.android.com/reference/android/os/CountDownTimer.html – Raghunandan

ответ

1

Хорошо, я не дам вам код. Это твоя домашняя работа. Однако я объясню, как будет работать countDownTimer.

Как только вы создали класс CDT, создайте новый объект.

private static myCDT newTime;//static makes sure there's only one instance of the variable in the entire program 
newTime = new myCDT(randNum*1000, 1000); 

Скажите, что randNum равен 10, а затем отсчет на 10 секунд.

Чтобы создать случайное число, узнайте, каков максимальный предел. Я предполагаю, что это будет 50. Таким образом, CDT будет иметь опцию от 0-50.

int randNum=50*Math.random();

Если вы хотите исключить 0 и хотите минимум быть 1s

int randNum=1+49*Math.random();

Теперь также установить логическую переменную для кнопки. При первом нажатии на нее будет установлено значение true. Используйте эту переменную как условие за какое-то время. Теперь, если пользователь снова нажимает кнопку, установите для переменной значение false. Вызовите функцию cancel() для вашего объекта CDT newTime. Теперь вызовите функцию onFinish() для вашего CDT. Это приведет к возврату потока управления в цикл while, теперь состояние будет ложным, и цикл остановится. Убедитесь, что этот цикл находится в функции прослушивания кликов кнопки. Или в любой другой функции, но обязательно вызовите ее из прослушивателя кликов.