본문 바로가기
Programming/Android Java

3.전원 관리

by 개Foot/Dog발?! 2014. 8. 31.

URL : http://www.winapi.co.kr/android/annex/19-3.htm


* 다른 페이지의 PowerManaer 펀 글을 정리한 게시물 참고

이하생략

.....


3.사용자 액션 추출


.....


지금 사용자가 프로그램을 조작하고 있는 중인지, 방치 상태인지는 어떻게 구분할 수 있을까? 이전 버전에서는 onKeyDown이나 onTouchEvent 등이 호출될 때를 감지하여 사용중임을 알아냈었다. 그러나 이 방식은 완벽하지도 않고 여러 군데서 체크를 해야 하므로 불편하기도 하다. 트랙볼이 있는 장비는 트랙볼도 감시해야 하며 뷰 계층이 복잡하면 입력을 받는 모든 뷰를 다 감시해야 한다. 이런 불편함을 해소하기 위해 1.5 버전부터 다음 메서드가 추가되었다.

 

void Activity.onUserInteraction()

 

이 메서드는 키입력이나 터치 입력, 트랙볼 이벤트가 발생할 때마다 호출된다. 어떤 키를 눌렀는지, 화면의 어디를 눌렀는지에 대한 추가 정보는 없으며 단지 사용자가 기기를 조작하고 있는 중이라는 것만 알려줄 뿐이다. 여러 군데서 조사해야 하는 번거로운 작업을 한 메서드에서 일괄적으로 처리할 수 있어 편리하고 완벽하다. 다음 메서드도 유사한 이유로 1.5 버전에서 새로 추가되었다.


void Activity.onUserLeaveHint()

 

이 메서드는 사용자에 의해 액티비티가 백그라운드로 전환되기 직전에 onPause 바로 앞에 호출된다. Home 키를 누르기 직전에 호출되며 Back키를 누르거나 전화 통화 앱이 올라올 때, 타이머에 의해 종료될 때는 호출되지 않는다. Home키는 키입력 이벤트로 전달되지 않아 검출이 어려운데 이 메서드가 호출될 때 Home키에 의해 백그라운드가 됨을 알 수 있다. 이 두 메서드는 상태란의 통지를 관리할 때 사용될 수 있으며 액티비티가 통지를 취소할 시점을 결정하는데 도움을 준다. 


.....