Использование Alarm Manager для запуска службы - PullRequest
3 голосов
/ 20 февраля 2011

У меня есть код, который я хочу выполнять в 3:00 каждый день.Я прочитал документацию Service Class и, похоже, я могу использовать AlarmManager для запуска намерения (активность или служба, я думаю?), А затем в этом намерении создать и опубликовать сообщение в уведомлении Androidarea.

Calendar threeAM = Calendar.getInstance();
threeAM.set(Calendar.HOUR_OF_DAY,2);
threeAM.set(Calendar.MINUTE,0);
threeAM.set(Calendar.SECOND,0);
threeAM.set(Calendar.MILLISECOND,0);
AlarmManager alarmManager =
         (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, myNotifier.class);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, threeAM.getTimeInMillis(),
        AlarmManager.INTERVAL_DAY, PendingIntent.getService(context, 1, i , 0));
Log.i("Service TEST", "Alarm set?" );

Он проходит через код без проблем, но нет никаких признаков того, что будильник установлен, и действие не начинается.Я использую деятельность, которая, как я знаю, работает.Я попытался обернуть его в попытку / поймать, ничего в logcat ...

Любая помощь будет оценена !!:)

Ответы [ 2 ]

2 голосов
/ 20 февраля 2011

Я думаю, что вы должны зарегистрировать свою активность для получения загрузочных широковещательных приемников, чтобы ваше приложение запускалось в момент завершения загрузки ОС. вот ссылка http://www.androidenea.com/2009/09/starting-android-service-after-boot.html

Надеюсь, это поможет вам.

Это не поможет с точки зрения уведомления, но да, это решит вашу проблему, когда не запускается ...

1 голос
/ 20 февраля 2011

Ваш код будет работать только в том случае, если вы выполните его до 3 часов ночи.В противном случае вы будете устанавливать будильник в прошлом.

...