我有一个计时器,它使函数每分钟运行一次。当 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 处于前台时运行。

10-08 03:07