>일반적인 문제 >활동 수명주기 방법

활동 수명주기 방법

(*-*)浩
(*-*)浩원래의
2019-06-05 11:38:0316614검색

최근에는 Activity의 라이프 사이클을 검토하고 관련 서적과 공식 문서를 읽고 많은 것을 얻었습니다. 이전의 이해가 크게 향상되었으며 여기에서 공유하고 싶습니다.

활동 수명주기 방법

Activity는 서블릿과 동일합니다. 우리의 Activity는 인스턴스 생성, 초기화, 인스턴스 삭제 등의 모든 프로세스를 컨테이너에서 호출합니다. , 전화하겠습니다." 메커니즘. (권장 학습: Java 비디오 튜토리얼)

이 고전적인 라이프 사이클 흐름 차트를 살펴보겠습니다:

활동 수명주기 방법

onCreate():
액티비티가 생성되면 자동으로 방법. 이 메소드는 보기 생성, 목록에 데이터 설정 등과 같은 일부 초기화 작업을 수행합니다. 이 메소드는 활동의 이전 상태 정보가 포함된 번들 유형 변수를 제공합니다(이 정보는 이전에 저장되었습니다). 이 메서드가 실행된 후 onStart() 메서드가 실행됩니다.finish() 메서드가 onCreate 메서드에 추가되면 onCreate는 다음으로 onDestroy 메서드를 실행합니다

onRestart():
액티비티가 onStop 상태에서는 onRestart가 사용되며, 이 메소드는 다시 실행되는 onStart보다 우선하며 onRestart가 실행된 후에 onStart가 실행됩니다. onRestart() 메서드에 Finish() 문을 추가하면 onStart 및 후속 상태 메서드는 onDestroy가 완료될 때까지 계속 실행됩니다.

onStart():
onStart는 활동이 사용자에게 표시될 때 호출됩니다. 활동이 전경에 표시되면 onResume이 실행됩니다. 활동이 전경에 표시되기 전에 숨겨지면(중지된 경우) onStop()이 실행됩니다. onStart 메소드를 사용하면 onStart() 이후에 바로 실행됩니다.

onResume():
onResume은 활동이 사용자와 상호작용하기 시작할 때 호출되며 활동은 사용자 작업을 위한 활동 스택의 맨 위에 있습니다. 특정 작업 후에 메소드가 실행된 후 실행되는 것은 onPause()

onPause():
액티비티가 onResume 메소드로 실행될 때 액티비티가 파괴될 것인지, 일시 중지될 것인지 또는 중지될 것인지에 관계없이 이 메소드가 호출됩니다. . 이 메소드 뒤에는 onResume 또는 onStop이 올 수 있습니다. 이 액티비티 A에서 이 액티비티 A를 완전히 포함하지 않는 새 액티비티 B가 열리면 액티비티 B가 종료될 때 액티비티 A가 onPause 상태가 됩니다. Activity-A는 onResume을 직접 실행합니다(onPause 메서드가 실행된 경우, 그렇지 않으면 onResume 메서드를 실행하기 전에 onPause 메서드가 실행될 때까지 기다리므로 이 메서드에서 CPU 집약적인 작업을 수행하는 것은 권장되지 않습니다). 액티비티 A를 종료해야 하는 경우 다음에 onStop이 실행됩니다. onPause()는 변경된 저장되지 않은 영구 데이터를 제출하고 더 많은 CPU를 소비하는 애니메이션 및 기타 이벤트(예: 방송 수신기, 센서(예: GPS) 또는 전력을 소비하는 리소스)를 중지하는 데 사용됩니다. 업데이트 후 새 액티비티를 실행하세요

onStop():
이 액티비티가 완전히 보이지 않으면 onStop 메서드가 호출됩니다. 다른 액티비티가 onResume을 호출하고 이 액티비티를 덮어쓰기 때문입니다. 다음 세 가지 상황에서는 이 액티비티가 onStop() 메서드를 호출하게 됩니다. 첫 번째는 새로운 액티비티가 실행되는 것이고, 두 번째는 기존 액티비티가 앞으로 전환되는 것이고, 세 번째는 액티비티가 소멸되는 것입니다. 사용자가 액티비티를 회수하면 onRestart 메서드가 호출되고, 액티비티가 소멸되면 onDestroy 메서드가 호출됩니다.

onDestroy():
이 메서드는 액티비티가 소멸되기 전에 호출됩니다. 예를 들어 다음과 같은 일이 발생합니다. 활동이 호출됩니다. Finish() 메소드가 활동을 종료하거나 시스템이 공간을 절약하기 위해 활동을 일시적으로 파괴합니다. 이 두 가지 상황은 isFinishing() 메소드로 판단할 수 있습니다. 기술 기사를 보려면

Java Development Tutorial

칼럼을 방문하세요.

위 내용은 활동 수명주기 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:SD는 무엇입니까?다음 기사:SD는 무엇입니까?