'onPause'에 해당되는 글 2

  1. 2014.11.17 홈버튼 이벤트 감지하기 (2)
  2. 2014.01.27 안드로이드 생명주기
Android/기본스킬 | Posted by 덩치 2014.11.17 17:12

홈버튼 이벤트 감지하기

펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO

@Override

protected void onUserLeaveHint() {

//여기서 감지

Log.d(TAG, "Home Button Touch");

super.onUserLeaveHint();

}


홈키 눌렀을때 작동되어야 하는 작업들을 위의 소스코드를 이용하여 처리할 수 있다.




댓글을 달아 주세요

  1.  댓글주소  수정/삭제  댓글쓰기 아데우스 2015.06.09 09:54

    100퍼센트 불가능입니다. 저 이벤트가 홈키때만 호출되는것이 아니라 여러 상황에 호출되기 때문에 예외처리를 추가해줘야해요 생명주기 순서를 따져서 홈키인지 아닌지를 판별해야합니다.

    •  댓글주소  수정/삭제 덩치 2015.06.10 18:10 신고

      좋은지적 감사합니다. 이 글을 참고하시는분들은 홈키를 판단하실때 생명주기가 홈키를 눌렀을때와 동일한 주기로 입력됐는지 확인하는 부분을 추가하시면 되겠습니다. 빠른 시일 내 업데이트 하겠습니다.

Android/기본스킬 | Posted by 덩치 2014.01.27 14:46

안드로이드 생명주기

펌 OK (출처 표시), 상업적 이용 NO, 컨텐츠 변경 NO


안드로이드도 다른 프로세스와 마찬가지로 태어나고 죽기까지의 생명주기(life cycle)가 존재합니다.

위 다이어그램은 액티비티가 생성되고 죽기까지의 과정을 순서적으로 나타낸것입니다.


우선 액티비티에 대해 설명하자면, 액티비티는 단말 화면상으로 보이는 뷰(View) 즉 화면을 뜻합니다.

액티비티 위에는 다른 뷰들이 올라가게 되고, 그런 뷰들로 화면이 구성됩니다. 즉 액티비티는 도화지, 뷰(버튼,텍스트 등)는

그림이라고 생각하시면 이해하기 편합니다.


위 그림을 해석해 보면


onCreate - 액티비티가 시작되면 제일 먼저 onCreate()가 호출됩니다.

이 영역에서 어플이 켜짐과 동시에 실행되어야 하는 작업들을 실행하게 됩니다.

어플 최초 실행시의 로딩화면 등을 예로 들 수 있겠습니다.


onStart() - onCreate가 호출 된 후 바로 실행됩니다. 

(onCreate에 의해 실행되는것은 아닙니다. 모든 생명주기는 독립적입니다.)


onPause() - 다른 액티비티가 기존 액티비티 위에 생성되어 포커스를 잃은상태. 

반투명 또는 일부영역만 차지하는 액티비티가 호출 된 상태로, 액티비티의 일부가 화면상에 노출되고있는 상태입니다.


onReasure() - Pause상태에서 다시 액티비티가 활성화되면 호출됩니다.


onStop() - 액티비티가 가려지거나 숨겨졌을 때 호출됩니다. 

일반적으로 홈키를 눌렀을때 어플의 상태를 생각하시면 됩니다.


onRestart() - stop상태에서 다시 액티비티가 실행되면 호출됩니다.


onDeastroy() - 메모리상에서 액티비티의 자원이 완전 해제될 때 호출됩니다.

즉 어플을 종료할 때 사용됩니다. 어플 종료시 자원의 해제와 같은 기능을 여기에서 주로 실행하게 됩니다.

댓글을 달아 주세요