- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 재능이의 돈버는 일기
- StresslessLife
- K_JIN2SM
- 소소한 일상
- My Life Style & Memory a Box
- Blog's generation
- 공감 스토리
- 취객의 프로그래밍 연구실
- Love Me
- Dream Archive
- 세상에 발자취를 남기다 by kongmingu
- hanglesoul
- 카마의 IT 초행길
- 느리게.
- 미친듯이 즐겨보자..
- Joo studio
- Gonna be insane
- 악 다 날아갔어!! 갇대밋! 왓더...
- xopowo05
- 맑은공기희망운동
- 엔지니어 독립운동
- 혁준 블로그
- Simple in Complex with Simple
- 무의식이 의식을 지배한다
드럼치는 프로그래머
[안드로이드] Home Key(홈키) 제어 본문
안드로이드의 영원한 떡밥..이슈..그것은 바로 Home Key 제어죠.
Home Key 를 막는 것은 애초에 불가능 하지만,
onPause() 가 호출될 때,
1. 홈키를 통해 호출 된 것인지
2. 다른 경로로 호출된 것인지
위의 두가지 경우를 구분해낼 수 있다면, 굉장히 유용하리라 생각됩니다.
일단 안드로이드 액티비티의 라이프 사이클을 보자면,
위에 처럼 되어있는데, onPause() 가 호출되는 경우는,
● 다른 어플리케이션에서 메모리를 필요로 할때,
● Home Key 입력으로 인해 어플이 잠시 중지될 때,
크게 두경우가 있겠고, 지금 하는 프로젝트에서 알람을 등록하고,
● 화면 꺼짐 상태에서 등록한 알람이 기동될 때 호출되는 경우.
에도 onPause() 가 호출됨을 알 수 있었습니다.
어플이 Background 에서 Foreground 로 호출될 때의 라이프 사이클에 해당되는 경우입니다.
단순 어플의 경우 onPause() 에서 Home Key 처리를 해 주어도 무방하겠으나,
화면 꺼짐 상태에서 Foreground 로 올라오는 어플의 경우
Home Key 입력에 의한 onPause() 를 구분할 필요성이 발생하게 됩니다.
그래서 존재하는 함수가 아래의 함수 입니다.
--------------------------------------------------------------------
protected void onUserLeaveHint (){
}
--------------------------------------------------------------------
HomeKey 로 인한 호출의 경우 함수가 호출되는 순서가,
onUserLeaveHint() -> onPause() 의 순서가 됩니다.
따라서 플래그를 하나 설정하여 onUserLeaveHint() 함수에 설정해주고,
onPause() 에서 그 플래그를 확인하는 작업을 한다면,
Home Key 에 의한 onPause() 인지 아닌지를 구분할 수 있습니다.
'★─Programing > ☆─Android' 카테고리의 다른 글
[안드로이드] Remote Service 사용하기 (0) | 2013.04.01 |
---|---|
[안드로이드] 죽지 않는 서비스 만들기 (0) | 2013.04.01 |
[안드로이드] AIDL에 Parcelable 데이터 사용하기 (0) | 2013.03.26 |
[안드로이드] Service 에서 Activity 를 실행하는 방법 (0) | 2013.03.08 |
[안드로이드] [번역] 안드로이드 멋진 아이디어 - 안드로이드 오픈 악세서리 (0) | 2013.03.04 |