1
これは私のコードです。SCREEN_OFF BroadcastReceiverが機能しません
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
検出され、正しく
作業しかし、画面がオフにするとIntent.ACTION_SCREEN_OFF(android.intent.action.SCREEN_OFF)
は検出されませんされています。
Activity
は、Service
から始まります(他の受信者から開始)。
何が間違っていますか?
あなたはonDestroyで登録を解除しますか?意図が送信される前にアクティビティが破棄されたため、アクティビティで受信できない可能性がありますか? – galex
私はonStopでレシーバの登録を解除します。 –
@galexありがとう。 unregisterをonDestroyに移動すると、正しく動作します。 –