AlarmManager запускается в эмуляторе, но не на физическом устройстве

У меня есть приложение, которое вызывает AlarmManager

Intent intent;
intent = new Intent(context, MyEventReceiver.class);  
PendingIntent appIntent = PendingIntent.getBroadcast(context, 0,
intent, PendingIntent.FLAG_ONE_SHOT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
appIntent);

и в Манифесте у меня есть обязательная запись

    <receiver android:name=".MyEventReceiver"
   android:process=":remote" />

MyEventReceiver выглядит так

public class MyEventReceiver extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        try
        {
            // DO SOME WORK
        }
        catch (Exception e)
        {
            Log.e("MyEventReceiver", e.getMessage().toString());
        }
    }
}

Когда будильник активирован, MyEventReceiver должен быть запущен и что-то делать, даже если мое приложение не запущено. В эмуляторе это так, однако на реальном устройстве это не так.

В качестве примера я начну MyApplication на эмуляторе, а в DDMS я вижу процесс запуска MyApplication. Из MyApplication я добавляю сигнал тревоги, а затем в DDMS убиваю процесс для MyApplication. Когда срабатывает сигнализация, MyEventReceiver выполняет свою работу, и в DDMS я вижу два процесса: MyApplication и MyApplication: удаленный.

На реальном устройстве, если я запускаю MyApplication, добавляю сигнал тревоги, а затем завершаю процесс с помощью программы-убийцы, когда наступает время для выполнения сигнала тревоги, ничего не происходит. Если я подключу свое устройство к отладчику и остановлю процесс с помощью DDMS вместо устройства-убийцы на устройстве, то сигнал тревоги сработает и будет работать как положено.

Может кто-нибудь помочь мне понять, почему это происходит? У меня сложилось впечатление, что после того, как будильник был запланирован, он сохранится, если устройство не будет перезагружено. Устройство бодрствует в момент срабатывания будильника.

Ответы на вопрос(1)

Ваш ответ на вопрос