안드로이드 Activity Lifecycle 이해하기
안드로이드에서 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 수명 주기 흐름
- 앱 시작 시:
- onCreate() → onStart() → onResume()
- 이 시점에서 Activity는 사용자와 상호작용할 준비가 됩니다.
- 앱이 백그라운드로 갈 때:
- onPause() → onStop()
- 이 시점에서 Activity는 더 이상 화면에 보이지 않게 됩니다.
- 앱이 다시 포그라운드로 올 때:
- onRestart() → onStart() → onResume()
- Activity가 다시 사용자와 상호작용할 준비가 됩니다.
- 앱 종료 시:
- onDestroy()가 호출되어 Activity가 종료됩니다.
결론
안드로이드에서 Activity 수명 주기는 앱의 리소스와 상태를 관리하는 데 매우 중요한 역할을 합니다. 각 메서드는 Activity가 생성되고, 사용자와 상호작용하며, 종료되는 동안 호출됩니다. 이를 적절히 관리하면 앱의 성능을 최적화하고, 효율적으로 리소스를 사용할 수 있습니다.
Activity 수명 주기를 잘 이해하고 활용하는 것은 안드로이드 개발에서 중요한 기술입니다. 이를 통해 더 안정적이고 효율적인 앱을 개발할 수 있습니다.