Search code examples
javaandroidtimeronresume

Restarting a timer in the onResume() method?


Im using a Timer to continuously update a TextView, but I'm having trouble restarting the timer during the onResume() method. I use timer.cancel() in the onPause() and onDestroy() methods, but how do I restart the timer in onResume()?

This is my timer code...

int delay = 1000; 
int period = 1000; 
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {

public void run() {
        //I update the TextView here 
    }

}, delay, period);

Solution

  • You dont restart the timer. Instead use a new timer i.e inside onResume() create a new timer. As you are no longer using the previous one, garbage collection will take care of it. So in onResume() use the following code:

    timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask() {
    
    public void run() {
    
        //update the TextView here 
    
    }
    
    }, delay, period);