Android Studio

안드로이드 Activity Lifecycle 이해하기

ssury94 2025. 3. 4. 11:40

안드로이드에서 Activity는 사용자 인터페이스(UI)를 제공하는 중요한 구성 요소입니다.

각 Activity는 수명 주기(Lifecycle)를 가지고 있으며, 이를 통해 안드로이드 시스템은 각 Activity의 상태를 관리합니다.

이 수명 주기를 이해하는 것은 애플리케이션 성능을 최적화하고, 리소스를 효율적으로 사용하는 데 중요한 역할을 합니다.

 

 

 

활동 수명 주기  |  App architecture  |  Android Developers

활동은 사용자가 전화 걸기, 사진 찍기, 이메일 보내기 또는 지도 보기와 같은 작업을 하기 위해 상호작용할 수 있는 화면을 제공하는 애플리케이션 구성요소입니다. 각 활동에는 사용자 인터페

developer.android.com

 

 

안드로이드 Activity 수명 주기 주요 메서드

안드로이드 Activity는 여러 단계로 나뉘며, 각 단계에서 호출되는 메서드가 다릅니다. Activity의 주요 상태는 활성화, 비활성화, 종료입니다. 각 상태에 해당하는 메서드가 호출되며, 이 메서드들은 시스템에 의해 자동으로 호출됩니다.

이제 각 메서드가 어떤 역할을 하는지, 언제 호출되는지 살펴보겠습니다.

1. onCreate()

목적:
onCreate()는 Activity가 처음 생성될 때 호출됩니다. 이 메서드는 레이아웃을 설정하고 UI 요소들을 초기화하는 데 사용됩니다.

사용 예:

  • 액티비티의 레이아웃 설정 (setContentView())
  • UI 요소 초기화 및 데이터 준비
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.i("MyApp", "Main: onCreate");
}

2. onStart()

목적:
onStart()는 Activity가 사용자에게 보이기 직전에 호출됩니다. 하지만 아직 사용자와 상호작용할 준비가 되지 않은 상태입니다.

 

3. onResume()

목적:
onResume()은 Activity가 사용자와 상호작용할 준비가 되었을 때 호출됩니다. 이 메서드는 onStart() 뒤에 호출되며, 활동이 사용자와 상호작용할 수 있을 때 사용됩니다.

사용 예:

  • 데이터 갱신, UI 업데이트 등 사용자가 상호작용할 준비가 되었을 때 처리해야 할 작업을 합니다.

4. onPause()

목적:
onPause()는 Activity가 화면에서 잠시 사라질 때 호출됩니다. 다른 Activity가 앞에 올 때 또는 앱이 백그라운드로 갈 때 호출됩니다.

사용 예:

  • 사용자가 Activity와 상호작용을 멈췄을 때 데이터 저장이나 리소스 해제 작업을 할 수 있습니다.

5. onStop()

목적:
onStop()은 Activity가 더 이상 사용자에게 보이지 않게 될 때 호출됩니다. 백그라운드로 가거나 다른 Activity가 앞에 올 때 발생합니다.

사용 예:

  • Activity가 더 이상 화면에 보이지 않기 때문에, 리소스를 해제하거나 데이터를 저장할 수 있습니다.

6. onRestart()

목적:
onRestart()는 onStop() 후에 Activity가 다시 사용자에게 보여지기 전에 호출됩니다.

사용 예:

  • Activity가 다시 화면에 보일 준비가 되었을 때, 리소스를 재초기화하거나 데이터를 갱신하는 데 사용됩니다.

7. onDestroy()

목적:
onDestroy()는 Activity가 종료되기 직전에 호출됩니다. 시스템이 Activity를 종료하거나 사용자가 종료할 때 호출됩니다.

사용 예:

  • 리소스를 해제하거나, 종료 작업을 할 때 사용됩니다.
 
 
 

안드로이드 Activity 수명 주기 흐름

  1. 앱 시작 시:
    • onCreate() → onStart() → onResume()
    • 이 시점에서 Activity는 사용자와 상호작용할 준비가 됩니다.
  2. 앱이 백그라운드로 갈 때:
    • onPause() → onStop()
    • 이 시점에서 Activity는 더 이상 화면에 보이지 않게 됩니다.
  3. 앱이 다시 포그라운드로 올 때:
    • onRestart() → onStart() → onResume()
    • Activity가 다시 사용자와 상호작용할 준비가 됩니다.
  4. 앱 종료 시:
    • onDestroy()가 호출되어 Activity가 종료됩니다.

결론

안드로이드에서 Activity 수명 주기는 앱의 리소스와 상태를 관리하는 데 매우 중요한 역할을 합니다. 각 메서드는 Activity가 생성되고, 사용자와 상호작용하며, 종료되는 동안 호출됩니다. 이를 적절히 관리하면 앱의 성능을 최적화하고, 효율적으로 리소스를 사용할 수 있습니다.

Activity 수명 주기를 잘 이해하고 활용하는 것은 안드로이드 개발에서 중요한 기술입니다. 이를 통해 더 안정적이고 효율적인 앱을 개발할 수 있습니다.