AlarmManager disparando no emulador, mas não no dispositivo físico

Eu tenho um aplicativo que chama 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);

e no Manifiest eu tenho a entrada obrigatória

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

MyEventReceiver aparece assim

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());
        }
    }
}

Quando o alarme é ativado, o MyEventReceiver deve ser iniciado e fazer alguma coisa, mesmo que meu aplicativo não esteja sendo executado. No emulador, este é o caso, no entanto, no dispositivo real, esse não é o caso.

Como exemplo, iniciarei o MyApplication no emulador e no DDMS posso ver o processo do MyApplication em execução. No MyApplication, adiciono um alarme e, no DDMS, interrompo o processo para o MyApplication. Quando o alarme dispara, o MyEventReceiver faz seu trabalho e, no DDMS, vejo dois processos, MyApplication e MyApplication: remote.

Em um dispositivo real, se eu iniciar o MyApplication, adicione um alarme e interrompa o processo usando um killer de tarefas quando chegar a hora do alarme executar, nada acontece. Se eu conectar meu dispositivo ao depurador e parar o processo usando DDMS em vez do assassino de tarefas no dispositivo, o alarme disparará e funcionará conforme o esperado.

Alguém pode me ajudar a entender por que isso está acontecendo? Fiquei com a impressão de que, uma vez agendado o alarme, ele persistiria, a menos que o dispositivo fosse reiniciado. O dispositivo está acordado no momento em que o alarme deve ser executado.

questionAnswers(1)

yourAnswerToTheQuestion