私はメソッドsetKeepScreenOn(true)を使用しており、現在のアクティビティ(コンテンツビューセットを持つ)に関連してこれを呼び出す方法を理解できませんでした。ビューに常に表示されているボタンの1つで呼び出すことで機能させることができましたが、これは間違っているように感じます。これを回避する方法があるはずです。私はこのように現在のフォーカスを参照してみました:
getCurrentFocus().setKeepScreenOn(true);
しかし、それはNullPointerExceptionをスローしました。たぶん、現在の焦点はありませんでした。では、私が内部で作業しているビュークラスを参照する方法を誰かに教えてもらえますか?ありがとう:)
試してみてください この答え :
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
getWindow
はアクティビティ用に定義されたメソッドであり、最初にView
を見つける必要はありません。
ホークが言ったようにしかし不十分に説明しました。
XMLレイアウトファイルでFLAG_KEEP_SCREEN_ON
を使用することもできます。
Android:keepScreenOn="true"
に注意してください
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:keepScreenOn="true"
Android:orientation="vertical" >
<!-- whatever is in your layout -->
</LinearLayout>
画面をオンにしておくためのすべての選択肢をブログ投稿に書きました。
http://blog.blundellapps.com/tut-keep-screen-onawake-3-possible-ways/
セットする Android:keepScreenOn
XML
クラスでそれを行っている場合は、Viewを拡張します。あなたは簡単にすることができます:
this.setKeepScreenOn(true);
Googleドキュメントによると Android開発者には2つの方法があります これを行うには:
最初の方法:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
2番目の方法は、xmlファイルレイアウトにこの属性を追加することです:Android:keepScreenOn="true"