AlarmManager с RTC_WAKEUP не будит устройство

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

Проблема в том, что мое устройство переходит в спящий режим.

Я использую AlarmManager для запуска событий проверки, используя RTC_WAKEUP, чтобы процесс выполнялся даже при выключенном экране...

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

Я записываю каждый шаг, записывая время, когда это произошло, чтобы увидеть, когда и как все происходит.

Когда я перевожу свое устройство в спящий режим и возвращаюсь через несколько минут, я вижу, что будильник срабатывает ТОЛЬКО тогда, когда я просыпаю устройство, а не когда оно спит.

Вот код, в котором я создаю будильник:

public static void AddAlarm(Context pContext, Server pServer)
{
    // Create pending with intent and server object with a helper that creates  my pending intent.
    PendingIntent pending = IntentGenerator.GetPendingIntentForAlarm(pContext,pServer.ServerId);

    // Get alarm manager
    AlarmManager alarm = (AlarmManager)pContext.getSystemService("alarm");

    // Get current time to start now.
    long startNow = new Date().getTime()-10;

    // Set repeating alarm with current time to start, and interval.
    alarm.setRepeating(AlarmManager.RTC_WAKEUP ,startNow, pServer.GetIntervalInMilliseconds(), pending);
}

И если вам интересно, как я создаю ожидающее намерение:

public static Intent GetIntentForService(Context pContext, int pServerId)
{
    // Comienzo la alarma.
    Intent retVal = new Intent(pContext, ServerStatusCheckService.class);
    retVal.putExtra("SERVER_ID", pServerId);

    return retVal; 
}

person Juanu    schedule 28.03.2013    source источник


Ответы (1)


Я решил, что проблема была в моем собственном устройстве. Это планшет Zenithink C93. Я протестировал тот же код на Motorola Defy, и он отлично сработал.

person Juanu    schedule 31.03.2013