Android

Android Activity Life Cycle(feat. iOS App Life Cycle)

TDCIAN 2026. 1. 22. 22:11

시대가 참 좋아졌습니다...

 

1. onCreate() - 화면 최초 생성

역할

액티비티가 최초로 태어날 때 딱 한 번 호출하는 메소드. 레이아웃을 설정하고 초기 데이터를 로드하는 역할

override fun onCreate(savedInstanceState: Bundle?) {
	super.onCreate(savedInstanceState)
    
    setContentView(R.layout.activity_main) // 화면 레이아웃 연결
    
    binding.textView.text = "안녕하세요" // 초기 데이터 설정
}

 

👉 iOS의 viewDidLoad()와 동일한 역할 - 화면이 메모리에 로드되고 UI가 준비되는 타이밍

 

 

2. onStart() - 화면 보이기 직전

역할

액티비티가 사용자에게 보이기 시작할 때. 아직 터치 불가지만 화면에 나타남.

override fun onStart() {
	super.onStart()
    
	locationManager.startLocationUpdates() // 위치 추적 시작
}

 

👉 iOS의 viewWillAppear()와 동일한 역할 - 화면이 보이려는 직전 단계

 

 

3. onResume() - 사용자와 상호작용 가능

 

역할

액티비티가 포어그라운드로 올라와 터치, 입력이 가능해질 때

override fun onResume() {
	super.onResume()
    musicPlayer.start() // 음악 재생 시작
    sensorManager.registerListener() // 센서 활성화
}

 

👉 iOS의 viewDidAppear()와 동일한 역할 - 사용자가 실제로 조작이 가능해지는 단계

 

 

4. onPause() - 잠깐 가려짐

역할

다른 앱이나 팝업 때문에 부분적으로 가려질 때. 중요한 데이터를 저장하고 리소스 정지.

override fun onPause() {
	super.onPause()
    saveUserInputToDatabase() // 사용자 입력 저장
    musicPlayer.pause() // 음악 일시정지
}

 

👉 iOS의 viewWillDisappear()와 동일한 역할 - 화면이 가려지기 직전

 

 

5. onStop() - 완전히 사라짐

역할

화면이 완전히 사용자 시야에서 사라질 때. 무거운 작업(네트워크, 카메라) 정리.

override fun onStop() {
	super.onStop()
    networkRequest.cancel() // 네트워크 요청 취소
    camera.release() // 카메라 해제
}

 

👉 iOS와 정확히 대응되는 메서드 없음. viewDidDisappear() + 백그라운드 전환 개념

 

6. onRestart() - 다시 살아남

역할

onStop() 후 다시 포어그라운드로 돌아올 때(onStart() 직전)

override fun onRestart() {
	super.onRestart()
    refreshDataFromServer() // 최신 데이터 다시 불러오기
}

 

👉 iOS의 viewWillAppear() 호출 전 재시작 준비 단계와 간접적으로 유사

 

 

7. onDestroy() - 최종 파괴

역할

액티비티가 메모리에서 완전 삭제될 때 마지막 정리 -> 시스템이 호출을 보장하지 않을 수도 있음

 

override fun onDestroy() {
	super.onDestroy()
    disposable.dispose() // RxJava 구독 해제
    sensorManager.unregisterListener()
}

 

👉 iOS의 deinit과 비슷하지만 보장 안 됨. viewDidDisappear() 후 메모리 해제 과정

 

 

참고: Android Studio, Perflexity

'Android' 카테고리의 다른 글

Kotlin의 Data Class(feat. iOS의 struct)  (0) 2026.01.27