Хорошо, я не дам вам код. Это твоя домашняя работа. Однако я объясню, как будет работать 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, теперь состояние будет ложным, и цикл остановится. Убедитесь, что этот цикл находится в функции прослушивания кликов кнопки. Или в любой другой функции, но обязательно вызовите ее из прослушивателя кликов.
для таймера coutdown начинаются здесь http://developer.android.com/reference/android/os/CountDownTimer.html – Raghunandan