답변:
이를 위해서는 앱에 추가 권한을 부여해야하며 실수로 wake lock을 유지하여 화면을 그대로 두는 버그를 쉽게 도입 할 수 있습니다.
FLAG_KEEP_SCREEN_ON다음 onCreate()과 같이 활동 창에서 활성화 할 수 있는 window 플래그를 사용하는 것이 훨씬 낫습니다 .
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
이렇게하면 창이 전경에있는 동안과 전경에있을 때만 화면이 계속 켜져 있습니다. 이 일반적인 사용 사례를 크게 단순화하여 앱이 상태간에 전환 될 때 수행해야하는 저글링을 제거합니다.
이 질문은 이미 @hackbod에 의해 훌륭한 답변이 있습니다!
두 가지 추가 솔루션으로이 질문에 답하고 있습니다!
기존 솔루션 :
@Override
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
}
추가 솔루션 :
우리는 사용할 수 있습니다 keepScreenOn
1. implementation 사용setKeepScreenOn() in java code
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// or any View (in case generated programmatically )
View v = getLayoutInflater().inflate(R.layout.driver_home, null);
v.setKeepScreenOn(true);
setContentView(v);
}
문서 http://developer.android.com/reference/android/view/View.html#setKeepScreenOn(boolean)
2. 추가 keepScreenOn로xml layout
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:keepScreenOn="true" >
문서 http://developer.android.com/reference/android/view/View.html#attr_android%3akeepScreenOn
참고 (몇 가지 유용한 사항) :
1. 그 문제가되지 않습니다 keepScreenOn에 사용되어야 Main/Root/Parent View 그것이 어떤 사용할 수 있습니다 child view그것이 작동와 동일하게 의지 작업Parent view
2. 문제는 View's Visibility must be visible그렇지 않으면 작동하지 않는다는 것입니다!
v.setKeepScreenOn(true);전체 화면 dialogfragment을 위해 할 수있는 유일한 방법이 될 것 같다
또 다른 해결책은 android:keepScreenOn="true"( 문서 화면을 유지해야하는 뷰 ) 하는 것입니다.
어떤 뷰가 유지되고 어떤 뷰가 유지되지 않는지에 대해 좀 더 세분화 된 제어가 가능합니다. 이러한 방식으로 리소스 파일의 설정을 참조 할 수도 있습니다.