IOS를 사랑하는 AOS 개발자

[Android] Activity 생명주기 본문

Android (이론)

[Android] Activity 생명주기

아사안개 2021. 12. 20. 16:50
반응형
SMALL

👼🏻 초보 안드로이드 개발자가 매번 구글링하기 싫어서 정리하는 블로그 👼🏻 

 

 

 

[Android] 안드로이드 4대 컴포넌트

👼🏻 초보 안드로이드 개발자가 매번 구글링하기 싫어서 정리하는 블로그 👼🏻 Android App은 컴포넌트로 구성되어 있다. Activity Service Broadcast Receiver Content Provider 이를 4대 컴포넌트라고 부르며

devziner.tistory.com

4대 컴퍼넌트에 속하는 Activity 의 생명주기에 관해 정리합니다!!

 

Activity LifeCycle
    ✔️ Activity 가 시작되고 종료되는 시점까지의 상태를 Activity LifeCycle 이라고 합니다.
    ✔️ 순서는 onCreate() ▶️ onStart()  ▶️ onResume()  ▶️ onPause() ▶️ onStop() ▶️ onDestroy()
onRestart() 가 실행 될 수 있습니다.                     

 

 

📌 onCreate() - Activity LifeCycle 동안 "한 번" 만 실행한다.

🔗 이 메서드에서는 UI 구성, XML, 변수 정의 등 설정을 하며, 필수적으로 구현되어야 한다.

 

📌 onStart() - 호출되면 포그라운드에 보내 상호작용을 할 수 있도록 준비한다.

🔗 이 메서드는 매우 빠르게 완료되고 바로 onResume 을 호출하며 UI를 관리하는 코드를 초기화 한다. 활성상태에 들어가면 이 함수가 호출되며 사용자에게 보여지기 직전을 의미한다.

 

📌 onStart() - 특별한 이벤트가 발생되지 않고 앱에서 포커스가 떠날 때까지 이 메서드에 머무른다.

🔗 특별한 이벤트가 발생되면 일시중지 상태에 들어가고 onPause() 를 호출한다.

     (ex : 전화가 오거나, 화면일부가 가려지거나, 사용자가 다른화면으로 이동하거나, 기기 화면이 off 될 때)

🔗 사용자에게 화면을 보여지고 상호작용을 하는 메서드이다.

 

📌 onPause() - 포그라운드에 있지 않을 때 실행할 필요가 없는 기능을 모두 정지할 수 있다.

🔗 이 메서드는 onStart() 처럼 잠깐, 빠르게 실행됨으로 저장 작업을 하기에는 부적합할 수 있다.

     (ex : 데이터를 저장하거나, 네트워크를 호출하거나, DB트랜잭션 등 실행하기엔 부적합)

🔗 무거운 작업은 onStop() 에서 처리하는 것이 효율적이다.

🔗 사용자가 화면을 떠날 때 제일먼저 호출하는 메서드이다. (상태가 포그라운드에 있지 않게 되었다는 것을 나타냄)

 

📌 onStop() - 앱이 사용자에게 보이지 않는 동안 앱이 필요하지 않는 리소스를 해제하거나 조정해야 한다.

🔗 onPause() 에서 하지 못하는 무거운 작업을 여기서 처리 할 수 있다.

     (ex : DB 저장 같은 것. 하지만 메모리가 부족할 경우 호출이 안될 수도 있음)

🔗 포커스가 완전히 빠졌을 때 시스템은 이 메서드를  호출한다.

 

📌 onDestroy() - 앱이 완전히 종료되는 경우

                             구성변경 ( 기기 회전 또는 멀티 윈도우모드 ) 으로 시스템이 일시적으로 활동을 소멸시키는 경우

🔗 onStop()에서 해제하지 않은 모든 리소스를 해제해야 한다.

 

📌 onRestart() - onCreate() 를 뛰어넘고 바로 onStart()로 가는 메소드

🔗 onStop()상태에 있던 화면이 다시 켜졌을 때 호출되는 메소드

 

반응형

 

액티비티에서 액티비티로 이동할 때 LifeCycle 순서

🖋 예제 코드 곧 올릴게요....

☑️ 액티비티에서 문자가 왔을 경우( 화면이 일부 가려졌을 때 )
onCreate() ▶️ ...  ▶️ onResume()  ▶️ 문자 옴  ▶️ onPause()  ▶️ 문자 사라짐  ▶️ onResume()

☑️ AA 액티비티에서 BB 액티비티로 이동
AA onCreate() ▶️ ...  ▶️ AA onResume()  ▶️ BB 액티비티 이동 클릭  ▶️ AA onPause()  ▶️ BB onCreate()  ▶️ ... ▶️ BB onResume()  ▶️ AA onStop()  ▶️ AA onDestroy() ( 상황에 따라 다를 수 있어요 )
( 액티비티는 종이처럼 겹겹이 쌓이는 것(?) 이라 AA 가 BB보다 밑에 깔려있다면 BB 를 치우고 다시 AA 를 볼 수 있어요 )

☑️ 액티비티에서 백그라운드로 갔다 다시 포그라운드로 복귀 시
onCreate() ▶️ ...  ▶️ onResume()  ▶️ 홈버튼(백그라운드)  ▶️ onPause()  ▶️ onStop() ▶️ 앱 복귀  ▶️ onRestart()  ▶️ onStart() ▶️ onResume()

 

 

 

[Android] Activity 생명주기

👼🏻 초보 안드로이드 개발자가 매번 구글링하기 싫어서 정리하는 블로그 👼🏻 [Android] Activity 생명주기 👼🏻 초보 안드로이드 개발자가 매번 구글링하기 싫어서 정리하는 블로그 👼🏻

devziner.tistory.com

SMALL

 

생명주기만 알아도 실제 개발할 때 도움이 많더라구요

꼭 잊지않고 활용해야겠습니다요!

 

🔆 막무가내 기술 블로그 / Android Interview 에서 참고하여 작성했습니다.
원본 : https://www.notion.so/imwj/Android-Interview-3ce7ddf12ddb413a9d2213173654d52c
반응형
LIST
Comments