【Android/Kotlin】Kotlinのコードで画面のスリープを無効にする(スマートフォンでカップ麺タイマーをつくる6)

投稿日:2021年3月14日
最終更新日:2021年3月14日

画面のスリープを無効にする

カップ麺タイマーをつくっていて気づいたが、今のままだとタイマーが動いているうちにAndroid端末がスリープ状態になってしまい、時間がわからなくなってしまうという致命的な問題がある。

今回はKotlinのコード上で画面のスリープを無効にしたので方法をメモしておく。

 

環境

開発PC環境

Windows 10
Android Studio 4.1.1

実行Android環境

機種:Xperia X Performance SOV33

Androidバージョン:7.0

 

アクティビティをFLAG_KEEP_SCREEN_ONに設定する

参考文献の公式ドキュメントを読むと、Activityのコード上でスリープを無効にする方法とレイアウト XML上でスリープを無効にする方法があるが、今回はActivityのKotlinコード上でスリープを無効にする。やり方はいたって簡単で、まず

import android.view.WindowManager

でWindowManagerをインポートして、以下のコードをonCreateの適当な位置に配置するだけ。

window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)

作成中のカップ麺タイマーでは以下のようにコード中に配置した。

実機で確認してみて、アプリ起動中はスクリーンがスリープにならないことを確認した。なお、ドキュメントにも書いてあるが明示的にFLAG_KEEP_SCREEN_ONをクリアしなくても、アプリがバックグラウンドに移動するか、またはフォアグラウンドに戻ってくると、ウィンドウ マネージャーが適切な処理が行われるようにしてくれるとのこと。

参考文献

今回は以下のサイトを参考にさせて頂きましたm(_ _)m

デバイスの起動状態を維持する | Android デベロッパー | Android Developers

 

Androidアプリをつくって遊ぼう日記まとめ

以下にAndoirdアプリで遊んでみた軌跡を残しています。興味があればのぞいてみてください。

【Android】Androidアプリをつくって遊ぼう日記


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください