☕Java/☕모바일 앱 개발 (안드로이드)

안드로이드 Activity Lifecycle 메서드 완벽 정리 - 초보자를 위한 가이드

itstory(Booho) 2025. 3. 3. 16:24
728x90

안드로이드 앱을 개발할 때 앱의 Lifecycle(Activity Lifecycle) 를 이해하는 것은 매우 중요합니다.

Lifecycle 메서드를 활용하면 앱이 실행될 때, 중단될 때, 종료될 때 적절한 처리를 할 수 있습니다.

이번 글에서는 onCreate(), onResume(), onPause(), onDestroy() 등의 주요 Lifecycle 메서드에 대해 알아보고, 언제 사용해야 하는지 쉽게 설명해 보겠습니다.

안드로이드 Activity Lifecycle 을 시각적으로 표현한 다이어그램


안드로이드 Activity Lifecycle란?

안드로이드 앱은 실행, 사용, 일시 정지, 종료 등의 상태를 거칩니다. 이를 "Lifecycle(Lifecycle)"라고 부르며, 안드로이드 시스템이 자동으로 이 상태 변화를 관리합니다.

앱의 상태가 바뀔 때 특정 메서드가 자동으로 호출되며, 우리는 이 메서드들을 활용하여 필요한 작업을 수행할 수 있습니다.

주요 Lifecycle 메서드와 호출 타이밍

메서드 언제 호출됨? 주요 기능
onCreate() 액티비티가 처음 생성될 때 UI 초기화, 버튼 연결 등
onStart() 앱이 화면에 보이기 직전 UI 업데이트, 데이터 로드
onResume() 앱이 사용자와 상호작용 가능할 때 앱이 활성 상태가 됨
onPause() 앱이 일시 정지될 때 (다른 화면으로 이동) 데이터 저장, 애니메이션 중지
onStop() 앱이 화면에서 완전히 사라질 때 백그라운드 리소스 해제
onDestroy() 액티비티가 완전히 종료될 때 메모리 정리, 리소스 해제

각 Lifecycle 메서드 자세히 알아보기

1️⃣ onCreate() - 앱 실행 시 가장 먼저 호출되는 메서드 (필수!)

onCreate()는 앱이 처음 실행될 때 반드시 호출됩니다.

하는 역할:

  • 화면 UI(XML)를 로드하고, 버튼 등의 요소를 findViewById()로 연결
  • 앱의 초기 상태를 설정하는 코드 작성

언제 사용해야 할까?

  • 앱이 시작될 때 기본 설정을 해야 할 때
  • 화면을 구성해야 할 때
  • 데이터베이스를 로드해야 할 때

예제 코드

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main); // UI 연결
    Log.i("MyApp", "MainActivity:onCreate()"); // 로그 출력
}

onCreate()는 반드시 작성해야 하는 메서드입니다.


2️⃣ onResume() - 앱이 다시 활성화될 때 호출

onResume()은 앱이 백그라운드에서 다시 돌아올 때 호출됩니다.

하는 역할:

  • 일시 정지된 앱이 다시 실행될 때 필요한 작업 수행
  • 예를 들어, 음악 앱이라면 onResume()에서 음악을 자동 재생

언제 사용해야 할까?

  • 앱이 다시 실행될 때 특정 작업을 해야 할 때
  • 게임을 다시 실행할 때

예제 코드

@Override
protected void onResume() {
    super.onResume();
    Log.i("MyApp", "MainActivity:onResume()");
}

이 메서드는 필요할 때만 작성하면 됩니다.


3️⃣ onPause() - 앱이 일시 정지될 때 호출

onPause()는 사용자가 다른 화면으로 이동하거나 홈 버튼을 눌렀을 때 호출됩니다.

하는 역할:

  • 중요한 데이터를 저장하거나, 리소스를 해제할 때 사용
  • 게임을 일시 정지하거나, 음악을 멈출 때 사용

언제 사용해야 할까?

  • 앱이 백그라운드로 갈 때 데이터를 저장해야 할 때
  • 동영상, 음악 등을 자동으로 멈춰야 할 때

예제 코드

@Override
protected void onPause() {
    super.onPause();
    Log.i("MyApp", "MainActivity:onPause()");
}

이 메서드도 필요할 때만 작성하면 됩니다.


4️⃣ onDestroy() - 앱이 완전히 종료될 때 호출

onDestroy()는 앱이 완전히 종료될 때 실행됩니다.

하는 역할:

  • 앱이 종료될 때 반드시 정리해야 할 작업 수행
  • 예를 들어, 로그아웃 처리, 임시 파일 삭제 등의 작업을 할 수 있음

언제 사용해야 할까?

  • 앱이 종료될 때 데이터 저장이 필요할 때
  • 네트워크 연결을 해제할 때

예제 코드

@Override
protected void onDestroy() {
    super.onDestroy();
    Log.i("MyApp", "MainActivity:onDestroy()");
}

이 메서드는 꼭 필요한 경우에만 작성하면 됩니다.


이 메서드들을 꼭 작성해야 할까?

 

메서드  꼭 작성해야 함?  언제 필요한가?
onCreate() ✅ 반드시 필요 UI 초기화, 버튼 연결 등
onResume() ❌ 선택 사항 앱이 다시 실행될 때 특정 작업 필요할 때
onPause() ❌ 선택 사항 앱이 일시 정지될 때 특정 작업 필요할 때
onDestroy() ❌ 선택 사항 앱이 종료될 때 정리해야 할 작업이 있을 때

정리하면

  • onCreate()는 반드시 작성해야 한다. (앱 실행 시 기본 설정을 해야 하니까)
  • 나머지(onResume(), onPause(), onDestroy())는 필요한 경우에만 추가하면 된다.
  • 안드로이드가 자동으로 처리하는 부분이 많기 때문에, 불필요한 코드 작성을 줄이는 것이 좋다.

마지막으로

안드로이드 Lifecycle 메서드는 앱이 실행되고 종료되는 과정에서 적절한 처리를 하기 위해 꼭 알아야 하는 개념입니다. onCreate()는 항상 작성해야 하지만, 나머지는 필요한 경우에만 추가하면 됩니다.

이제 안드로이드 Lifecycle에 대해 확실히 이해했으니, 앱 개발할 때 적절하게 활용해보세요.

728x90
반응형