avvio un'attività da un BroadcastReceiver, che viene attivato da un alaram (tipo RTC_WAKEUP). in onCreate di tale attività aggiungo queste bandiereFLAG_TURN_SCREEN_ON non funziona sempre
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 è che a volte (circa 10% dei casi) lo schermo non si accende. l'allarme è attivato correttamente (qui il suono di una notifica, che viene attivato anche nel ricevitore su Ricevi(), quindi, se premo il pulsante di accensione del telefono, lo schermo si accende, mostra la mia attività e si spegne all'istante. che, il pulsante di accensione funziona bene. questo accada su Android 2.3.7 e qui è il metodo 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();
}
vorrei evitare di usare PowerManager, come ha bisogno di un permesso, e le bandiere sono il preferito modo.
quello che potrebbe essere un problema? logcat non mostra alcun problema ...
siete riusciti ad aggirare il problema? – Redwarp
@Redwarp L'unica soluzione era utilizzare un'autorizzazione WAKE_LOCK e utilizzare un blocco statico. C'è un nuovo 'WakefulBroadcastReceiver' nella libreria di supporto, che gestisce il wake lock parziale. Ha bisogno del permesso di cource. – shelll