본문 바로가기

안드로이드

Powermanager

반응형

개요 

안드로이드 시스템은 사용자의 interaction이 없을때 화면이나 키보드 조명을 차단,

sleep이후 일정 시간이 지나면 wifi네트워크도  끊고, cpu까지 잠재워버리는 배터리 절약정책을 쓰고있다

 

그러나, 

-위 정책에 협조하지 않는 app 존재 (동영상플레이어, 네비게이션 등 백그라운드 작업을 하는 앱들은 화면이 꺼지더라도 cpu를 동작해야한다. )

 

이러한 예외적인 경우에 사용하는 방법이 powermanger와 powermanager.WakeLock

 

 

powermanager: device의  전원상태를 제어할수 있게 도와준다. 사용할때 주의해서 쓰기 

 

01.단말 배터리 사용시간은 powermanager의 api사용에 따라 현저한차이를 나타낸다.

02.반드시필요한경우에만 wakelocks을 acquire

03.가장 낮은레벨을 사용하고 사용후 반드시 release

 

[사용방법]

PowerManager.WakeLock wakeLock = pm.newWakeLock( PowerManager.SCREEN_DIM_WAKE_LOCK, "MY TAG" );
wakeLock.acquire();
  // do something. 
  // the screen will stay on during this section.
wakeLock.release();

 

[레벨 종류]

 PARTIAL_WAKE_LOCK

SCREEN_DIM_WAKE_LOCK

SCREEN_BRIGHT_WAKE_LOCK :cpu on, screen bright, kebord off

FULL_WAKE_LOCK

 

 

 ACQUIRE_CAUSES_WAKE_UP 보통의 WAKE_LOCK 은 켜진 화면을 계속 유지하게는 하지만, 꺼진 화면을 강제로 켜지는 않습니다. 하지만 이 Flag 가 함께 사용된다면, WakeLock이 acquire() 되는 순간 Screen 과 Keyboard 가 바로 켜집니다. 보통 긴급한 notification (착신전화, 알람) 등이 있을 때 주로 사용됩니다.

<uses-permission android:name="android.permission.WAKE_LOCK"/> : 퍼미션 허용 

 

 

참고블로그

https://emong.tistory.com/200

 

powermanager

 [Android/안드로이드] PowerManager 를 통해 안드로이드의 진정한 주인이 되어 봅시다. 1. Information 먼저 Developer 의 내용을 간단히 정리해주세요 - PowerManager 는 Device 의 전원 상태 ( Power state )..

emong.tistory.com

 

반응형

'안드로이드' 카테고리의 다른 글

Burn-in ?  (0) 2021.06.22
Service 란?  (0) 2021.06.03
안드로이드 생명주기  (0) 2021.03.03
리사이클러뷰 리스트에 sqlite 값 뿌려주기  (0) 2021.03.02
ConText  (0) 2021.02.05