Dies ist mein Code.SCREEN_OFF BroadcastReceiver funktioniert nicht
public class MyActivity extends Activity {
...
@Override
protected void onStart() {
super.onStart();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("com.my.ACTION");
intentFilter.addAction(Intent.ACTION_SCREEN_OFF);
registerReceiver(broadcastReceiver, intentFilter);
}
@Override
protected void onStop() {
super.onStop();
unregisterReceiver(broadcastReceiver);
}
...
private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if ("com.my.ACTIOIN".equals(action)) {
updateMessageInformation(intent);
updateDialog();
} else if (Intent.ACTION_SCREEN_OFF.equals(action)) {
finish();
}
}
};
...
}
com.my.ACTION
wird erkannt und korrekt arbeitet
Aber wird Intent.ACTION_SCREEN_OFF(android.intent.action.SCREEN_OFF)
nicht erkannt, wenn der Bildschirm ausgeschaltet.
Dieser Activity
ist Start von Service
(von anderen Empfänger starten).
Was würde ich falsch machen?
Haben Sie die Registrierung bei onDestroy aufgehoben? Vielleicht wird die Aktivität zerstört, bevor die Absicht gesendet wird, sodass sie von der Aktivität nicht empfangen werden kann? – galex
Ich melde den Empfänger auf onStop ab. –
@galex Danke. Wenn Sie das Unregister auf onDestroy verschieben, funktioniert es ordnungsgemäß. –