я запускаю действие с BroadcastReceiver, который запускается аларамом (тип RTC_WAKEUP).при создании этой операции я добавляю эти флаги
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
);
проблема в том, что иногда (примерно в 10% случаев) экран не включается.Будильник правильно сработал (здесь звук уведомления, который также срабатывает в onReceive () приемника. Затем, если я нажму кнопку питания телефона, экран включится, показывая мою активность, и сразу же выключится.что кнопка питания работает хорошо. это происходит на Android 2.3.7 и вот метод onReceive ()
@Override
public void onReceive(Context context, Intent intent) {
m_Context = context;
Bundle extras = intent.getExtras();
final int id = extras.getInt("timer_id");
Intent activityIntent = new Intent(m_Context, MyActivity.class);
activityIntent.putExtra("timer_id", id);
activityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
m_Context.startActivity(activityIntent);
// and now load the alarm sound and play it for the desired time
showFinishedNotification();
}
я хотел бы избежать использования PowerManager, так как для этого требуется разрешение, а флагипредпочтительный способ.
в чем может быть проблема? logcat не показывает никаких проблем ...