我有一个计时器,它使函数每分钟运行一次。当 Activity 暂停时,计时器将继续运行。我不希望它运行,因为它是不必要的。
如果它在暂停时确实运行,我该如何防止它?
梅尔。
在 onCreate() 我有
//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);
在类内(onCreate() 之外)我有:
//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
最佳答案
在这种情况下,您应该将 Timer
对象实现为 Activity 的实例成员,在 Activity 的 onResume()
方法中创建并启动它,并在该 Activity 的 onPause()
方法中停止它;这样它只会在 Activity 处于前台时运行。