Я разрабатываю игру для Android, но столкнулся с проблемой: когда пользователь приостанавливает игру, а затем хочет продолжить, перезапустив приложение, вместо доступа к нему из ОЗУ, каждый раз снова запускается один и тот же таймер.
Вот мой таймер:
public void createTimers() {
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
//Stuff here
}
});
}
}, 0, 1000 / 60);
Итак, всякий раз, когда пользователь запускает приложение (или перезапускает его, пока оно все еще находится в ОЗУ), это выполняется:
Timer timer = new Timer();
createTimers();
Таким образом, игрок может злоупотреблять таймером, нажимая кнопку хомба, а затем запускать приложение снова и снова, потому что каждый раз будет больше задач таймера! В Android я получил это:
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
}
методы, но если я использую timer.cancel() в onPause, весь таймер с именем timer отменяется, и запуск приложения, пока он все еще находится в ОЗУ, вызывает исключение.
Я также пробовал Handlers и Runnables, которые рекурсивно вызывают себя, но поскольку я выполняю некоторые тяжелые вычисления в цикле, это замедляет цикл, в отличие от здесь, где это фиксированная скорость! Помогите пожалуйста :С