Android 의 Activity 라 이 프 사이클 요약

개술
그림 이 있 고 진실 이 있 기 때문에 먼저 그림 을 그린다.

위의 그림 은 안 드 로 이 드 홈 페이지 에서 캡 처 한 Activity 의 라 이 프 사이클 플 로 차 트 로 구성 이 매우 뚜렷 하 다.Activity 가 라 이 프 사이클 에서 발생 할 수 있 는 모든 상황 과 발생 하 는 선후 순 서 를 묘사 한 것 으로 이 그림 과 결합 하여 Activity 의 라 이 프 사이클 을 상세 하 게 소개 한다.
Activity 4 대 기본 상태
Activity 라 이 프 사이클 은 일반적으로 활동 상태(running),일시 정지 상태(paused),정지 상태(stopped),사망 상태 등 네 가지 기본 상태 로 나 뉜 다.
1.활동 상태(실행)
활동 상 태 는 일반적으로 이 Activity 가 화면 에서 가장 눈 에 띄 는 위치 에 표시 되 는 것 을 말한다.즉,이 Activity 는 Android 활동 스 택 의 맨 위 에 있다.
일반적으로 Activity 가 생 성 되면 이 상태 에 있 습 니 다.
이 기간 에 발생 하 는 함수 와 순 서 는:onCreate()->onStart()->onResume()입 니 다.
그 중:
onCreate()는 이 Activity 가 처음 만 들 어 졌 을 때 만 호출 됩 니 다.주로 Activity 의 일반적인 초기 화 설정 을 담당 합 니 다.보기 의 생 성,데이터 의 바 인 딩 등 을 포함 합 니 다.주의해 야 할 것 은 이전에 동 결 된 state(즉,시스템 이 이 Activity 에 onSave InstanceState()함 수 를 호출 한 적 이 있다 면 Bundle 매개 변 수 를 통 해 state 를 복원 할 수 있 습 니 다.
onStart()는 Activity 가 보 이 는 상태 로 바 뀌 고 있 을 때 호출 됩 니 다.일반적으로 이 기간 에 라디오 등 을 등록 할 수 있다.
onResume()은 이 Activity 가 사용자 와 상호작용 을 할 때 호출 됩 니 다.이때 Activity 가 있 는 활성 스 택 상단 에 있 습 니 다.
2.일시 정지 상태(일시 정지)
일시 정지 상 태 는 일반적으로 이 Activity 가 초점 을 잃 었 지만 여전히 보 이 는 상 태 를 말한다(일부 보 이 는 것 포함).일시 정지 상태 에 있 는 Activity 는 시스템 에 메모리 자원 이 극도로 부족 한 상태 에서 만 시스템 에 의 해 강제로 종 료 됩 니 다.
정지 상태 에서 실행 되 는 함수 와 순 서 는:onResume()->onPuased()입 니 다.
일시 정지 상 태 를 실행 상태 로 회복 하 는 함수 및 순 서 는:onPuased()->onResume()입 니 다.
그 중:
onPuased()는 Activity 가 시스템 초점 을 잃 으 면 호출 됩 니 다.만 남 이 일부 가 려 지고 장치 가 휴면 상태 로 전환 하 는 등 을 포함 합 니 다.일반적으로 이 기간 에 저장 되 지 않 은 데 이 터 를 지속 적 으로 유지 하고 CPU 를 소모 해 야 하 는 다른 작업 을 중단 하 며 시간 소모 작업 을 할 수 없습니다.그렇지 않 으 면 시스템 UI 스 레 드 를 막 을 수 있 습 니 다.
3.정지 상태(stopped)
정지 상 태 는 일반적으로 이 Activity 가 다른 Activity 에 완전히 덮어 씌 운 상 태 를 말 합 니 다.이것 은 모든 상 태 를 유지 하고 있 지만 이 Activity 가 보이 지 않 기 때문에 시스템 은 메모리 부족 으로 인해 이 Activity 를 강제로 종료 하 는 경우 가 많 습 니 다.
정지 상태 에서 실행 할 함수 와 순 서 는 onPuased()->onStop()입 니 다.
정지 상태 가 실행 상태 로 회복 되 는 함수 및 순 서 는:onStop()->onRestart()->onStart()->onResume()입 니 다.
그 중:
onStop()은 하나의 Activity 가 보이 지 않 을 때 호출 됩 니 다.이 때 는 이 Activity 가 로그아웃 되 거나 새로운 Activity 가 이 Activity 를 완전히 가 렸 기 때 문 일 수 있 습 니 다.이 기간 에는 이용자 가 보이 지 않 기 때문에 보통 등록 취소 방송 등 을 할 수 있다.
onRestart()는 Activity 가 정지 상태 에서 실행 상태 로 회 복 될 때 우선 호출 됩 니 다.
4.사망 상태
사망 상 태 는 이 액 티 비 티 가 시스템 에 의 해 폐기 되 는 것 을 말한다.하나의 Activity 가 일시 정지 상태 나 정지 상태 에 있 을 때 어디서나 사망 상태 에 들 어 갈 수 있 습 니 다.시스템 이 메모리 부족 으로 인해 이 Activity 를 강제로 끝 낼 수 있 기 때 문 입 니 다.
정지 상태 에서 사망 상태 까지 는 두 가지 상황 으로 나 뉜 다.(1)사용자 가 조작 해서 발생 하면 실행:onStop()->onDestroy().(2)시스템 이 자동 으로 강제 집행 하면 해당 액 티 비 티 는 강제로 종료 된다.
그 중:
onDestroy()는 Activity 가 시스템 finished 기간 에 호출 되 고 있 을 때 호출 됩 니 다.
Activity 7 대 생명주기 함수
Activity 는 모두 7 개의 생명주기 함수 가 있 는데 그것 이 바로 onCreate(),onRestart(),onStart(),onReusme(),onPause(),onStop(),onDestory()이다.이들 의 호출 된 상황 과 역할 은 이미 지난 단락 에서 관련 된 소개 분석 을 했 으 니 더 이상 군말 하지 않 겠 다.
사실은 하나의 Activity 전체 생명주기 에서 상기 7 대 생명주기 함수 가 반드시 실행 되 는 것 은 아니다.때로는 시스템 메모리 가 부족 하기 때문에 일부 생명주기 함 수 는 건 너 뛰 어 실행 되 지 않 는 다.
일반적으로 onCreate(),onRestart(),onStart(),onReusme()네 가지 함 수 는 시스템 에 의 해 건 너 뛰 어 실행 되 지 않 을 수 없 으 며,onDestory()함수 가 시스템 메모리 가 부족 할 때 이 함 수 는 시스템 에 의 해 건 너 뛰 어 실행 되 지 않 습 니 다.
onPause()함 수 는 특수 합 니 다.시스템 메모리 가 부족 할 때 도 이 함 수 를 반드시 실행 한 후에 야 Activity 가 강제 적 으로 끝 납 니 다.다음 Activity 는 이 함수 가 끝 날 때 까지 계속 진행 되 지 않 기 때 문 입 니 다.따라서 이 함 수 는 데이터 에 대한 지속 적 인 작업 에 사용 되 며 시간 이 걸 리 는 작업 도 금지 합 니 다.
onStop()함 수 는 가장 특수 합 니 다.Android 의 운영 환경 이 HONEYCOMB 즉 3.0 이전 버 전 일 때 onStop()함 수 는 시스템 에서 건 너 뛰 고 실행 하지 않 을 수 있 습 니 다.그러나 HONEYCOMB 즉 3.0 이후 버 전에 서 는 onStop()함수 가 onPause()함수 와 마찬가지 로 건 너 뛰 고 실행 하지 않 을 수 없습니다.
가로 세로 화면 전환 에 따 른 생명주기 이벤트
1.Activity 의 android:configChanges 를 설정 하지 않 으 면 화면 을 자 를 때 각 수명 주 기 를 다시 호출 하고 가로 화면 을 자 를 때 한 번,세로 화면 을 자 를 때 두 번 실 행 됩 니 다.
2.Activity 의 android:configChanges="orientation"을 설정 할 때 화면 을 자 를 때 각 수명 주 기 를 다시 호출 합 니 다.가로,세로 화면 을 자 를 때 한 번 만 실 행 됩 니 다.
3.Android 3.2 이전에 Activity 의 android:configChanges="orientation|keyboard Hidden"을 설정 할 때 화면 을 자 르 면 각 수명 주 기 를 다시 호출 하지 않 고 onConfigurationChanged 방법 만 실 행 됩 니 다.그러나 Android 3.2 와 그 후에 도 각 생명 주 기 를 다시 호출 합 니 다.screen size 도 장치 의 가로 와 세로 전환 에 따라 바 뀌 기 시 작 했 기 때 문 입 니 다.
4.Android 3.2 와 그 후에 Activity 의 android:configChanges="orientation|keyboard Hidden|screenSize"를 설정 합 니 다.화면 을 자 르 면 각 수명 주 기 를 다시 호출 하지 않 고 onConfigurationChanged 방법 만 실 행 됩 니 다.
총결산
안 드 로 이 드 의 4 대 구성 요소 중 하나 인 Activity 의 생명주기 에 대한 소 개 는 여기까지 입 니 다.사실 아직 소개 되 지 않 은 부분 이 많 습 니 다.예 를 들 어 onSave InstanceState()함수 와 onRestore InstanceState()함수 의 용법,그리고 onPause()함수 와 의 차이 점 은 언급 되 지 않 았 습 니 다.다음 에 기회 가 있 으 면 다시 잘 정리 하면 안 됩 니 다.안 되 겠 습 니 다.정말 졸 려 죽 겠 습 니 다.마지막 으로 본 논문 이 소홀 하고 부당 한 점 이 있 으 면 여러분 의 지적 을 환영 합 니 다.

좋은 웹페이지 즐겨찾기