empiezo una actividad desde un BroadcastReceiver, que se desencadena por un alaram (tipo RTC_WAKEUP). en onCreate de que la actividad añado estas banderasFLAG_TURN_SCREEN_ON no siempre funciona
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
);
problema es que a veces (casos aproximadamente el 10%) de la pantalla no se enciende. la alarma se activa correctamente (aquí el sonido de una notificación, que también se activa en el receptor onReceive(). Luego, si presiono el botón de encendido del teléfono, la pantalla se enciende, mostrando mi actividad, y se apaga instantáneamente. que, el botón de encendido funciona bien. esto suceda en Android 2.3.7 y aquí está el método 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();
}
me gustaría evitar el uso de PowerManager, ya que necesita un permiso, y las banderas son la preferida manera.
lo que podría ser un problema? logcat no muestra ningún problema ...
se las arregló para eludir el problema? – Redwarp
@Redwarp La única solución fue usar un permiso WAKE_LOCK y usar un bloqueo estático. Hay un nuevo 'WakefulBroadcastReceiver' en la biblioteca de soporte, que maneja el bloqueo parcial de activación. Necesita el permiso de cource. – shelll