Лучший способ перезапустить TimerTask в Сервисе - PullRequest
0 голосов
/ 05 августа 2011

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

Действия конфигурации изменяют общедоступную статическую длинную UPDATE_INTERVAL

У вас есть какие-то идеи дляя?

public void onStart(Intent intent, int startId) {

    // init the service here
    try {
        if (prefs.getString("oauth_token_secret", null) != null) {
            _startService();
        }
        } catch (Exception e) {
            Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
        }

}

private void _startService() {

    timer.scheduleAtFixedRate(
         new TimerTask() {
        public void run() {

            //doing things

        }
         }, 0, UPDATE_INTERVAL);

}

Спасибо, пока.Stefan

1 Ответ

0 голосов
/ 05 августа 2011

Не уверен, что вы подразумеваете под "Действия конфигурации изменяют общедоступную статическую длинную UPDATE_INTERVAL", но вы можете обновить интервал времени в вашем коде запуска, и он вступит в силу при следующем запуске TimerTask. Или, если ваша активность находится в отдельном классе, вы можете создать установщик для UPDATE_INTERVAL, а когда в действии запускается действие, вы устанавливаете временной интервал таким образом.

...