내 앱이 실행되는 동안 화면을 강제로 활성 상태로 유지하고 종료하지 않도록하려면 어떻게하나요?
답변
깨우기 잠금 장치를 사용하지 마십시오
이를 위해서는 앱에 추가 권한을 부여해야하며 실수로 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
그렇지 않으면 작동하지 않는다는 것입니다!
답변
또 다른 해결책은 android:keepScreenOn="true"
( 문서 화면을 유지해야하는 뷰 ) 하는 것입니다.
어떤 뷰가 유지되고 어떤 뷰가 유지되지 않는지에 대해 좀 더 세분화 된 제어가 가능합니다. 이러한 방식으로 리소스 파일의 설정을 참조 할 수도 있습니다.