アクティビティ中は画面をオンにしたままにする 質問する

アクティビティ中は画面をオンにしたままにする 質問する

私のアプリには 3 つのアクティビティがあります。2 番目のアクティビティのときに画面をオンにしておきたいのですが、手動で「ロック」キーを押さない限り、2 番目のアクティビティで画面がオフにならないようにする必要があります。多くのリンクを確認しましたが、よくわかりません。

ベストアンサー1

Androidチュートリアルで説明したように画面をオンにしておくこれを行うにはいくつかの方法があります。アクティビティのウィンドウで FLAG_KEEP_SCREEN_ON を設定できます。

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

XMLでこれに相当するのは、アクティビティのレイアウトのルートビューに属性を追加することですandroid:keepScreenOn="true"。フラグをプログラムで設定する利点は、

getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

アクティビティの実行中に画面を強制的にオンにしておく必要がなくなったとき。

画面 (および他の特定のリソース) を制御する別の方法は、ウェイクロックを使用することです。

mWakeLock = ((PowerManager) getContext().getSystemService(Context.POWER_SERVICE))
    .newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, getClass().getName());
mWakeLock.acquire();
// screen stays on in this section
mWakeLock.release();

マニフェストには次の権限を含める必要があります:

<uses-permission android:name="android.permission.WAKE_LOCK"/>

ただし、チュートリアルで説明したように、ウェイクロックは他のユースケース(画面がオフのときに CPU を実行し続ける必要のあるサービスやバックグラウンド タスクなど)に適しています。

おすすめ記事