Я разрабатываю Android-игру, но перед вами стоит проблема: когда пользователь приостанавливает игру, а затем хочет продолжить перезапуск приложения, вместо доступа он из ОЗУ, каждый раз, когда один и тот же таймер снова получает.Android: Java-таймер, созданный в каждом методе onCreate
Вот мой таймер:
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();
Таким образом, игрок может злоупотреблять таймером, нажимая кнопку hombe, а затем запускайте приложение снова и снова, потому что каждый раз будет больше настроек таймера! В Android я получил эту:
@Override
protected void onPause() {
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
}
методы, но если я использую timer.cancel() в OnPause, весь таймер с именем таймер отменяется и запуск приложения, в то время как он все еще в RAM Выдает исключение.
Я также пробовал Handlers и Runnables, которые рекурсивно называют себя, но, как я делаю некоторые тяжелые вычисления в цикле, он замедлял цикл, в отличие от здесь, где это фиксированная ставка! Help pls: S
http://stackoverflow.com/questions/2098642/pausing-stopping-and-starting-resuming-java-timertask-continuously – Apurva
Я прочитал это, но это действительно не помогает. Моя проблема заключается не в самом таймере, а в том, что мне нужно создать таймер (в моем случае в методе onCreate), что приводит к проблеме, что, начиная с этого приложения, у меня тогда есть 2 таймера! – user3646267
Теперь попробовал это с помощью ScheduledExecutorService, заканчивая тем же результатом. – user3646267