3

サービスを開始するアクティビティがあります。ここで、画面のオフ/オンをリッスンする BroadcastReceiver でサービスを開始/停止したいと考えています。私が使用した:

public class ScreenReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {
        Log.d("Screen:", "In Method:  ACTION_SCREEN_OFF");
        context.stopService(new Intent(context, ScreenReceiver.class));
    } 
    else if (intent.getAction().equals(Intent.ACTION_USER_PRESENT)) {
        Log.d("Screen:", "In Method:  ACTION_USER_PRESENT");
        context.startService(new Intent(context, ScreenReceiver.class));
    }
}
}

必要なアクセス許可を追加し、BroadcastReceiver をサービスに登録/登録解除しました。コードを実行すると、Logcat でログ メッセージを確認できますが、サービスが停止していないようです。どのように修正すればよいですか?前もって感謝します。

4

1 に答える 1