Обработчик postDelayed в службе Android

В моем приложении есть Service, который предназначен для постоянной работы в фоновом режиме после запуска. Эта служба запускается из Activity, и это метод onStartCommand():

MyService:
....

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    super.onStartCommand(Intent intent, int flags, int startId)
    mHandler.postDelayed(new myRunnable(), scheduledTime);
}

Я хочу знать, если при очень большом scheduledTime (скажем, пару дней в миллисекундах) Handler по-прежнему будет выполнять Runnable? Или мне лучше использовать AlarmManager для этого?

Спасибо.


person Sebastian Breit    schedule 24.01.2016    source источник


Ответы (1)


Я хочу знать, будет ли обработчик выполнять исполняемый файл с очень большой переменной scheduleTime (допустим, она представляет пару дней)?

Да, если сервис и ветка, в которой Handler публикует сообщения, будут к тому времени живы.

Или мне лучше использовать для этого AlarmManager?

Да.

person Onik    schedule 24.01.2016
comment
Если он все еще будет работать, почему тогда мне лучше использовать AlarmManager? - person Sebastian Breit; 25.01.2016
comment
@Perroloco См. раздел сохраняется ли Alarm Manager даже после перезагрузки?, Android AlarmManager после перезагрузки и подобные сообщения. - person Onik; 25.01.2016