안드로이드 앱을 개발할 때 앱의 Lifecycle(Activity Lifecycle) 를 이해하는 것은 매우 중요합니다.
Lifecycle 메서드를 활용하면 앱이 실행될 때, 중단될 때, 종료될 때 적절한 처리를 할 수 있습니다.
이번 글에서는 onCreate(), onResume(), onPause(), onDestroy() 등의 주요 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에 대해 확실히 이해했으니, 앱 개발할 때 적절하게 활용해보세요.
'☕Java > ☕모바일 앱 개발 (안드로이드)' 카테고리의 다른 글
안드로이드 스튜디오 실행 후 첫 화면 이해하기 (0) | 2025.03.01 |
---|---|
안드로이드 프로젝트의 핵심 파일 완벽 가이드: MainActivity.java & XML 구조 이해하기 (0) | 2025.03.01 |
안드로이드 스튜디오 설치 및 개발 환경 설정 (0) | 2025.03.01 |
구글 개발자 계정 등록 방법 (0) | 2025.03.01 |
구글 플레이 스토어 개발자 계정이 필요한 이유 (0) | 2025.03.01 |