2. 활동 수명 주기

Jacob Kwak·2022년 4월 10일
0

Android

목록 보기
1/3

굉장히 유명한 사진과 함께 정리를 하자면

크게 7개의 콜백이 있다.

onCreate(), onStart(), onResume(), onPause(), onStop(),onRestart(), onDestroy()

하나씩 살펴보면

onCreate() (생성됨)

-전체 수명주기동안 단 ㅎ나 번만 발생해야하는 것들을 구현
ex)데이터를 목록에 바인딩
-액티비티와 ViewModel 연결
-일부 클래스 범위 변수를 인스턴스화

*이번에 처음 생성된 액티비티인 경우 Bundle 객체의 값은 null.

여기서 가장 중요한 작업은
setContentView()를 통해 액티비티의 유저 인터페이스를 위한 레이아웃을 정의하기!

onStart()

onCreate()이후 바로 시작되며 액티비티가 onStart() 상태로 전환됨과 동시에 유저한테 표시된다.
이 콜백에서는 액티비티가 포그라운드로 나와서 대화형이 되기 위한 최종 준비에 해당하는 작업이 포함됨!

onResume()

액티비티의 대부분 onResume()에 머문다.
이 콜백에서 액티비티는 액티비티 스택의 맨 위에 있고 모든 유저 입력을 캡쳐한다.

onPause()

유저가 뒤로가기나 최근 버튼을 누를 때 발생한다. 액티비티의 포커스를 잃고 onPause() 상태로 전환됨.
이 콜백에서는 엄연히 말하면 액티비티가 여전히 표시되지만 대체로 유저가 액티비티를 떠나고 있으며
곧 onStop() 이나 onRestart()으로 전환됨을 나타낸다.

-포커스를 잃더라도 UI 업데이트 가능
=> 네비게이션 지도 화면 업데이트, 미디어 플레이어 로딩 재생 표시

But, 데이터를 저장, 네트워크 호출, DB 트랜잭션을 실행할때 이 콜백을 사용하면 안됨!!

onStop()

이 콜백은 액티비티가 더이상 유저한테 표시 안될 때 호출됨.

Case,
1.활동 제거
2.새 활동 시작
3.기존 활동이 '다시 시작됨'으로 전환

onRestart()

onStop()에서 다시 시작되려고할때 onRestart()를 호출.
onRestart()는 활동이 중지된 시간부터 활동 상태를 복원.

onDestroy()

이 콜백은 활동이 수신하는 마지막 콜백.
onDestroy()는 일반적으로 액티비티와 관련된 모든 프로세스가 제거될 때
활동의 모든 리소스를 해제하도록 구현.

profile
안드로이드 개발을 했었고 현재 대학교 블록체인 학회를 설립 및 운영하고 있습니다.

0개의 댓글

관련 채용 정보