开发者

Do timer functions automatically stop when an activity is paused?

I have a timer that causes a function to run every minute, on the minute. When the activity is paused will the timer continue to run. I dont want it to run as it is unecessary.

If it does run when paused, how can I prevent it?

Mel.

In onCreate() I have

//Respond to clock changing every minute, on the minute
  开发者_运维技巧  myTimer = new Timer();
    GregorianCalendar calCreationDate = new GregorianCalendar();
    calCreationDate.add(Calendar.MILLISECOND,  (-1*calCreationDate.get(Calendar.MILLISECOND)));
    calCreationDate.add(Calendar.SECOND, -1*calCreationDate.get(Calendar.SECOND));
    calCreationDate.add(Calendar.MINUTE, 1);

    //Update every one minute
    myTimer.scheduleAtFixedRate(new TimerTask() {
        @Override
        public void run() {
            timerMethod();  
        }
    }, calCreationDate.getTime(), 60000);

Within the class (outside of onCreate()) I have:

//Update the clock every minute
protected void timerMethod() {
    this.runOnUiThread(Timer_Tick);
}  //end TimerMethod


private Runnable Timer_Tick = new Runnable() {
    public void run() {
        int intTpHour = tpTimePicker.getCurrentHour();
        int intTpMinute = tpTimePicker.getCurrentMinute();

        displayMyTime(intTpHour, intTpMinute);
    }
};  //end Runnable Timer Tick


In that case you should implement your Timer object as an instance member of your activity, create and start it in the onResume() method of your activity and stop it in the onPause() method of that activity ; that way it will be running only when the activity is in the foreground.


Under most circumstances threads continue to execute when an Activity is in the background. The system reserves the right to kill the Activity and its related process at any time. See the Managing the Activity Lifecycle in the Dev Guide for more details.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜