
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 |
|---|