Atividade do Android não é exibida quando a tela é ativada e a tela de bloqueio não é desativada

eu tenho umBroadcastReceiver que começa umaActivity. Se oActivity é iniciado enquanto a tela está ligada, é exibida e está tudo bem. No entanto, em dispositivos ICS e JB (eu não testei GB ou HC mas o problema não existe com Froyo) se oActivity é iniciado enquanto a tela está desligada, a tela de bloqueio não está desativada e a atividade não é mostrada quando o telefone é desbloqueado (seja desbloqueá-lo manualmente ou com o código que eu coloquei para postar dispositivos Froyo).

Por que, em pelo menos dispositivos ICS e JB, a tela de bloqueio não é desativada sem o código mencionado abaixo e por que a atividade não é exibida se a tela estava desligada quando oActivity Começou?

Aqui está o código:

NoBroadcastReceiver:

Intent alarmAlert = new Intent(context, AlarmGoneOffActivity.class);
alarmAlert.putExtra(MyAlarmManager.ALARM_NUM_ID, alarm.ID);
alarmAlert.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | 
                    Intent.FLAG_ACTIVITY_NO_USER_ACTION);
context.startActivity(alarmAlert);

EmAlarmGoneOffActivity.onCreate():

setContentView(R.layout.alarm_gone_off);

final Window win = getWindow();
win.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN | 
             WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | 
             WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
             WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON,
             WindowManager.LayoutParams.FLAG_FULLSCREEN | 
             WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD | 
             WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED | 
             WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
}

//so far all of my post froyo devices (ICS and JB no more GB)
// don't bypass the lockscreen unless we use this
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.FROYO) {
    KeyguardManager  myKeyGuard = 
                    (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
    KeyguardLock myLock = myKeyGuard.newKeyguardLock("ShabbosAlarm");
    myLock.disableKeyguard();
}

Editar: Eu realmente prefiro não usarKeyguardLock.disableKeyguard() porque faz com que a proteção do teclado fique desativada atéKeyguardLock.reenableKeyguard() o que é inconveniente. Alguma solução?

Edit2: Agora posso confirmar que o problema só existe no ICS e acima. Alguma coisa mudou que impede a proteção do teclado de ser desativada? E mesmo que houvesse, por que meuActivity não mostra quando a tela é desbloqueada manualmente?