Активность Android не отображается при включении экрана и отключении блокировки экрана

у меня естьBroadcastReceiver это начинаетActivity, ЕслиActivity запускается при включенном экране, отображается и все нормально. Тем не менее, на устройствах ICS и JB (у меня нетt протестировал GB или HC, но проблема не вне существует с Froyo), еслиActivity запускается, когда экран выключен, экран блокировки не отключен, и активность не отображается, когда телефон разблокирован (либо путем разблокировки его вручную, либо с помощью кода, введенного для пост-устройств Froyo).

Почему, по крайней мере на устройствах ICS и JB, экран блокировки не отключается без использования приведенного ниже кода, и почемуt показ активности, если экран был выключен, когдаActivity был начат?

Вот's код:

В :BroadcastReceiver

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

В :AlarmGoneOffActivity.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();
}

Редактировать: Я действительно предпочел бы не использоватьKeyguardLock.disableKeyguard() потому что это приводит к отключению клавиатуры доKeyguardLock.reenableKeyguard() что неудобно. Любые решения?

Edit2: Теперь я могу подтвердить, что проблема существует только на ICS и выше. Было ли что-то изменено, что мешает отключению клавиатуры? И даже если бы был, почему мойActivity не отображается, когда экран разблокирован вручную?

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

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