Как управлять alarmManager, когда приложение убито (Android)

У меня есть будильник, который срабатывает каждые 2 минуты (когда телефон не спит), и обновляю виджет, он работает хорошо, но когда приложение закрывается, будильника не остается, поэтому он больше не работает. Что я могу сделать, чтобы справиться с этим убийством и сохранить работоспособность будильника после этого?

Если вам нужна дополнительная информация, скажите мне. Если вы не все понимаете, скажите мне тоже.

Cпасибо за ответы!


person Bast73    schedule 09.03.2011    source источник


Ответы (2)


Настройте будильник так, чтобы он инициировался при завершении загрузки системы (android.intent.action.BOOT_COMPLETED) или аналогичном намерении, которое является надежным.

Создайте широковещательный приемник, который использует следующее намерение

if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))
{
    AlarmManager aMgr = (AlarmManager) cx.getSystemService(Context.ALARM_SERVICE);
    PendingIntent pi = PendingIntent.getBroadcast(cx, 0, new Intent(cx, ScheduleReceiver.class), 0);
    aMgr.setInexactRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, Thoth.Settings.ALARM_TRIGGER_AT_TIME, Thoth.Settings.ALARM_INTERVAL, pi);
}

ScheduleReceiver — это класс, запускающий службу, которая обновляет виджет.

person Ujwal Parker    schedule 09.03.2011

Если вы тестируете, что происходит, когда вы убиваете приложение, вы можете столкнуться с той же проблемой, что и я.

В версии 2.2, если я закрываю приложение в представлении «Управление приложениями», мои AlarmManager сигналы тревоги для моего приложения удаляются автоматически.

Если приложение умирает из-за исключения, тревога продолжает срабатывать.

person Richard Le Mesurier    schedule 25.09.2012