> 일반적인 문제 > 활동의 라이프사이클을 간략하게 설명합니다.

활동의 라이프사이클을 간략하게 설명합니다.

angryTom
풀어 주다: 2019-07-23 11:52:18
원래의
26738명이 탐색했습니다.

활동의 라이프사이클을 간략하게 설명합니다.

추천 튜토리얼: Android 튜토리얼

이 글은 액티비티 라이프사이클을 간략하게 소개하며, 내용은 주로 공식 문서에서 가져왔습니다.

각 생명주기 방식을 간략히 설명하기 전에 전체적인 개요를 살펴보겠습니다. 세 가지 수준에서 활동 수명 주기를 모니터링할 수 있습니다

전체 수명 주기: 전체 수명 주기는 onCreate 메서드 콜백으로 시작하여 onDestroy 메서드 콜백으로 끝납니다.
가시적 주기: 표시되는 주기는 onStart 메서드 콜백으로 시작하여 끝납니다. onStop 메서드 콜백 사용
전경 주기: 전경 주기는 onResume 메서드 콜백에서 시작하여 onPause 메서드 콜백에서 끝납니다

다음은 각 수명 주기 메서드에 대한 간략한 소개입니다.

onCreate 라이프 사이클의 첫 번째 방법은 활동이 진행 중임을 의미합니다. 생성(시작). 특별 참고 사항: 이 메서드 내에서 종료 메서드를 호출하면 onDestroy 콜백이 즉시 트리거되고 다른 수명 주기는 실행되지 않습니다.

onRestart 이 메서드를 트리거하기 위한 전제 조건: onStop 메서드가 호출됩니다. onStop 메서드는 활동이 보이지 않게 되었다가 다시 표시될 때 호출됩니다. 이 메소드가 콜백된 후 시스템은 onStart 및 onResume 메소드를 차례로 트리거합니다.

onStart 액티비티가 표시될 때 호출됨(액티비티가 현재 포그라운드에 있지 않음): onCreate 메서드 이후에 호출되거나 onStop 메서드 호출로 인해 액티비티가 보이지 않을 때 액티비티가 다시 표시됨

onResume 이 메서드 Activity의 콜백 식별자는 전경에 있습니다 . 공식 문서에는 이것이 애니메이션 시작 및 독점 장치 액세스(예: 카메라) 등에 더 적합하다고 나와 있습니다.

onPause 활동이 백그라운드로 진입하려고 할 때 이 메서드를 호출하려고 합니다. 활동 A가 활동 B를 시작하면 활동 A의 onPause 메서드 콜백이 완료될 때까지 활동 B가 생성되지 않으므로 이 콜백 메서드에서 시간이 많이 걸리는 작업을 수행하지 마십시오.

onStop 이 메서드는 Activity가 표시에서 보이지 않게 변경될 때 호출됩니다.

onDestroy Activity가 곧 소멸될 것임을 나타내는 수명 주기의 마지막 메서드. 공식 문서에는 경우에 따라 시스템이 활동 호스트 프로세스(아래 다이어그램의 1로 표시됨)를 간단하고 무례하게 종료하므로 데이터 저장을 위해 이 방법을 사용해서는 안 되지만 리소스에는 이 방법을 사용할 수 있다고 명시되어 있습니다. 릴리스 작업

다음 그림은 공식 문서에 제공된 다이어그램입니다

활동의 라이프사이클을 간략하게 설명합니다.

Activity 생명주기 다이어그램

이 그림은 매우 명확하고 엄격하지만 공식 문서의 각 생명주기 콜백 방법에 대한 설명은 그다지 많지 않습니다. 상세하므로 주의하지 않으면 문서를 읽은 후 다이어그램의 라이프사이클 메소드 방향을 이해하기 어렵고 일부 메소드를 오해할 수도 있습니다. 예를 들어, 일부 어린이는 onStop 메서드를 오해하여 Activity가 배경에 들어갈 때 이 메서드가 호출된다고 잘못 생각할 수 있습니다. 실제로 onPause 메서드는 배경에 들어갈 때 호출되고 onStop 메서드는 보이지 않을 때 호출됩니다. 아이들은 onResume 메소드가 콜백된다고 잘못 믿고 있습니다. 실제로 우리는 public void onWindowFocusChanged(boolean hasFocus) 콜백의 hasFocus 매개변수를 기반으로 상호작용이 가능한지 판단해야 합니다.

활동이 표시되는지 여부와 전경에 있는지 여부는 서로 다릅니다 onStart와 onStop은 활동이 표시되는지 여부를 설명하기 위해 쌍을 이루고, onPause와
onResume은 쌍을 이루어 활동이 전경. 활동의 가시성은 활동이 상호작용할 수 있다는 것을 의미하지 않으며, 마찬가지로 활동이 포그라운드에 있는 경우 상호작용하지 못할 수도 있습니다. 직접적인 예는 활동이 대화 상자를 표시하는 경우 현재 활동이 여전히 포그라운드에 있지만 활동과 상호 작용할 수 없다는 것입니다.

또한 많은 사람들이 위 다이어그램에서 2로 표시된 방향을 개인적으로 확인하지 않았다고 생각합니다. , 일반적으로 이를 대화형으로 재현하는 것은 어렵기 때문입니다. 이 시나리오에서는 코드 제어를 통해 시뮬레이션할 수 있습니다. 활동 A가 활동 B를 시작하고 활동 B의 onCreate 메서드에서 직접 종료 메서드를 호출합니다

위 내용은 활동의 라이프사이클을 간략하게 설명합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿