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

Имам аларма, която се включва на всеки 2 минути (когато телефонът не спи) и актуализирам джаджа, работи добре, но когато приложението бъде убито, няма останала аларма, така че вече не работи. Какво мога да направя, за да управлявам това убийство и да поддържам алармата си да работи след това.

Ако имате нужда от повече информация, кажете ми. Ако не разбираш всичко, кажи и на мен.

Мерси за отговорите!


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