2010-12-07 2 views
34

Wakelock과 FLAG_KEEP_SCREEN_ON의 차이점은 무엇입니까? 깨어있는 화면을 유지

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

이 둘 사이 및 성능면에서 기술적 인 차이는 무엇입니까,

mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, 
       getClass().getName()); 

에 의해 또는 창에 FLAG_KEEP_SCREEN_ON를 추가하여 가동 잠금을 사용하여 수행 할 수 있습니다 및 배터리 수명이 권장됩니까?

답변

40

wakelock을 사용하면 화면을 켜지 않고 휴대 전화를 깨우는 등의 작업을 할 수 있으며 응용 프로그램에 wakelock 권한을 보유해야합니다.

따라서 창을 볼 수있는 동안 화면을 켜 놓는 것이 좋으면 FLAG_KEEP_SCREEN_ON을 권장합니다.

+0

"USB 디버깅"을 선택했을 때 FLAG_KEEP_SCREEN_ON이 작동하기 때문에 방금이 질문을 게시했습니다 ... http://stackoverflow.com/questions/15189767/keep-screen-on-in-activity- do-not-work-with-flag-keep-screen-on – Ted

+9

@ 테드 : 당신이 여기서 쓴 것과 (적어도) 다른 두 가지 질문은 잘못되었습니다. 우리는 다른 사람들에게 꼭 맞게해야합니다 : FLAG_KEEP_SCREEN_ON은 그것이 묘사하는 것에 완벽하게 작동합니다 : 단지 화면을 계속 유지하게 만듭니다. 이 작업을 수행하는 데 필요한 권한도 없으며 장치가 디버그 모드 인 경우에만 작동합니다. 모든 기기에서 작동해야하며, 그렇지 않은 경우 기기의 오류입니다.) – caw

2

Wakelock은 많은 옵션이 있으므로 모호합니다. 플래그 FLAG_KEEP_SCREEN_ON 만 해당 작업을 수행합니다.

| Flag Value    | CPU | Screen | Keyboard | 
----------------------------------------------------- 
| PARTIAL_WAKE_LOCK  | On* | Off | Off  | 
| SCREEN_DIM_WAKE_LOCK | On | Dim | Off  | 
| SCREEN_BRIGHT_WAKE_LOCK | On | Bright | Off  | 
| FULL_WAKE_LOCK   | On | Bright | Bright | 

안드로이드 세부 사항 및 정확한 구현을위한 다른 답을 wakelock 또는 PowerManager를 참조하십시오.

0

웨이크 잠금는 화면이 꺼져있는 동안 일을하기 위해 실행하는 CPU를 유지하기 위해 백그라운드 서비스에 사용됩니다. 깨우기를 절대로 사용하지 말아야합니다. 활동을 잠그지 마십시오. Wake Lock을 사용하려면 응용 프로그램의 매니페스트 파일에 WAKE_LOCK 권한을 추가해야합니다.


FLAG_KEEP_SCREEN_ON

웨이크 잠금 달리 특별한 허가없이의 CPU를 유지 할 켜진 화면을 유지하기 위해 활동에 사용됩니다. 서비스에서는 FLAG_KEEP_SCREEN_ON 을 절대로 사용하지 않아야합니다.

건배!

관련 문제