У меня есть эта AsyncTask, которая спит 0,1 секунды каждый раз, когда выполняется «doInBackground», до этого я использовал CountDownTimer для управления своим временем.Пауза таймера без разрушения и воссоздания - Android
Моя проблема: я хочу достичь таймера, который может приостановить, не вызывая .cancel()
и при запуске создания другого таймера.
Есть ли способ достичь этого - андроид? Я не нашел, как это сделать по-другому. Можете ли вы, например, это сделать?
Где я нашел примеры отменяя таймер:
EDIT
Ответ на вопрос Kevin Krumwiede: Этот проект - это своего рода игра, в которой я должен ударить по блокам в определенное время, поэтому я хочу добиться способа остановить таймер, когда игрок использует какую-то особую силу (ударил указанная кнопка).
EDIT2
Ответ Kushal: Я не знаю, если вы собрали этот код, но я не могу использовать TASK1 переменную. Здесь идет код:
public void doIt(){
final ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
final Runnable task =
new Runnable() {
@Override
public void run() {
timerAsyncTask.execute();
if(true) {
exec.shutdown(); // shutdown this execution
//exec = Executors.newSingleThreadScheduledExecutor();
exec.scheduleAtFixedRate(task, 0, 100, TimeUnit.MILLISECONDS);
}
}
};
exec.scheduleAtFixedRate(task, 0, 100, TimeUnit.MILLISECONDS);
}
Здесь exec = Executors.newSingleThreadScheduledExecutor();
он показывает мне ошибку:
Error:(33, 21) error: cannot assign a value to final variable exec
То, что я думаю, что это довольно хорошо, когда ехес является окончательной переменной.
А вот exec.scheduleAtFixedRate(task, 0, 100, TimeUnit.MILLISECONDS);
я получил другую ошибку:
Error:(34, 46) error: variable task might not have been initialized
Можете ли вы объяснить, как я могу использовать этот кусок кода? Я совершенно новый для Android. Спасибо.
Практически никогда не было оснований использовать «Таймер» в Android. Расскажите подробнее о вашем случае использования и, возможно, мы можем предложить более подходящее решение. –
Я редактировал вопрос. – guisantogui