В моем андроид приложения, у меня есть следующий соответствующий фрагмент коды:Повторного использования таймера в андроиде
/*Code outside*/
button.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Timer t = new Timer();
t.scheduleAtFixedRate(
new TimerTask(){
public void run(){
stuffToBeDone();
}
},someVariableDelay,someVariablePeriod);
}
}
Все шло хорошо, пока я не заметил, что stuffToBeDone() был запущен один раз за каждый раз, когда я нажимаюсь кнопка. Насколько я понимаю, каждый раз вызывается onClick(), и старый таймер больше не должен существовать, но как-то выживает TimerTask.
Во второй кнопке нажмите, у меня больше нет ссылки на первый таймер на cancel() это (потому что его больше не должно существовать). И если я объявлю таймер как окончательный переменной в коде за пределами, так что я могу это сделать, после отмены я больше не могу его повторно использовать. Итак, как я могу закончить TimerTask, но затем все еще могу использовать таймер?
Вы можете delcare 'Таймер T' в качестве переменной экземпляра инициализации в' onCreate' на кнопку выберите расписание таймера а затем вы можете вызвать 'cancel()' в любое время, когда хотите – Raghunandan
@Raghunandan В предпоследнем предложении я указываю, что если я это сделаю, я больше не смогу его повторно использовать. Но я думаю, что это должно быть в последнем вопросе для большей ясности. – chubakueno
повторным использованием, что вы имеете в виду. Вы можете помнить, что старое значение отменило таймер и снова запустилось со старым значением – Raghunandan