Функции таймера автоматически останавливаются при приостановке активности? - PullRequest
4 голосов
/ 24 августа 2011

У меня есть таймер, который заставляет функцию запускаться каждую минуту, каждую минуту. Когда действие приостановлено, таймер продолжит работать. Я не хочу, чтобы он запускался, поскольку он не нужен.

Если он работает при паузе, как я могу предотвратить это?

Мел.

В 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

Ответы [ 2 ]

2 голосов
/ 24 августа 2011

В этом случае вы должны реализовать свой объект Timer в качестве члена-экземпляра вашей активности, создать и запустить его в методе onResume() вашей активности и остановить его в методе onPause() этой деятельности; таким образом, он будет работать только тогда, когда активность находится на переднем плане.

1 голос
/ 24 августа 2011

В большинстве случаев потоки продолжают выполняться, когда действие находится в фоновом режиме. Система оставляет за собой право в любое время убить Активность и связанный с ней процесс. Подробнее см. Управление жизненным циклом активности в Руководстве по разработке.

...