■Activity 생명 주기 메소드
호출되는 메서드 | Activity 상태 | 설명 |
---|---|---|
onCreate() | 만들어짐 | 액티비티가 생성된다. 코드가 가장 많이 작성되는 메소드이다 |
onStart() | 화면에 나타남 | 화면에 보이기 시작한다. |
onResume() | 화면에 나타남 현재 실행중 | 실제 액티비티가 실행되고 있다. onResume()메소드가 호출되었다면 화면에 보이는 액티비티가 실행중이라는 의미 |
onPause() | 화면이 가려짐 | 액티비티 화면의 일부가 다른 액티비티에 가려진다. |
onStop() | 화면에 없어짐 | 다른 액티비티가 실행되어서 화면이 완전히 가려진다. |
onDestroy() | 종료 | 종료된다. |
1) 액티비티 실행
2) 화면이 제거가 되는 경우
■ViewController의 생명 주기 메소드
호출되는 메서드 | 실행 타이밍 | 설명 |
---|---|---|
viewDidLoad | 해당 뷰컨트롤러 클래스가 생성될 때 (ViewWillAppear전에 실행) 실행 | Low memory와같은 특별한 경우가 아니라면 딱 한번만 실행되기 때문에 초기화 할 때 사용 |
viewWillAppear | 뷰 컨트롤러가 화면에 나타나기 직전에 실행 | 화면에 보이기 시작한다. |
viewDidAppear | 뷰 컨트롤러가 화면에 나타난 직후에 실행 | 화면에 적용될 애니메이션을 그리거나 API로 부터 정보를 받아와 화면을 업데이트 할 때 이곳에 로직을 위치시키면 좋습니다. 왜냐하면 지나치게 빨리 애니메이션을 그리거나 API에서 정보를 받아와 뷰 컨트롤러를 업데이트 할 경우 화면에 반영되지 않습니다. |
viewWillDisappear | 뷰 컨트롤러가 화면에 사라지기 직전에 실행 | 뷰가 사라지기 직전에 수행합니다. 뷰를 생성하고나서 했던 행동들을 되돌리는 작업을 하거나 작성 또는 선택된 정보들을 삭제되기 전에 저장해두는작업을 수행합니다. 키보드를 숨기는 것과 같은 처리가 가능하다. |
viewDidDisappear | 뷰 컨트롤러가 화면에 사리진 직후에 실행 | notification처리에 용이하다. |
1) viewController 실행
2) viewController가 제거가 되는 경우