-1

画面が消えたために呼び出された場合、 onPause() および onStop() メソッドで知りたいです。したがって、私はブロードキャストレシーバーを書きました:

public class ScreenReceiver extends BroadcastReceiver {


    public static boolean screenOn = true;

    @Override
    public void onReceive(Context context, Intent intent) {
        if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) {

            screenOn = false;
        } else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) {

            screenOn = true;
        }
    }

}

public class ExampleActivity extends Activity {

   @Override
    protected void onCreate() {

        IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
        filter.addAction(Intent.ACTION_SCREEN_OFF);
        BroadcastReceiver mReceiver = new ScreenReceiver();
        registerReceiver(mReceiver, filter);

    }

    @Override
    protected void onPause() {

        if (ScreenReceiver.screenOn) {

            System.out.println("SCREEN TURNED OFF");
        } else {

        }
        super.onPause();
    }

    @Override
    protected void onResume() {

        if (!ScreenReceiver.screenOn) {

            System.out.println("SCREEN TURNED ON");
        } else {

        }
        super.onResume();
    }

}

画面をオフに切り替えたために onPause() が呼び出された場合、どのように可能ですか?

たぶんこれで?

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_POWER) {
        return true;
    }
    return super.onKeyDown(keyCode, event);
}
4

1 に答える 1