안녕하세요, 반갑습니다!
안드로이드 앱을 구성하는 액티비티는 어떻게 동작하는 걸까요?
화면이 나타나거나,
화면이 전환될때,
혹은 사라지거나 종료될때.
시스템은 각 시점에 특정 함수들을 호출합니다.
그리고 그 흐름에 따라 앱이 작동하는 것인데요.
안드로이드 개발자라면 반드시 알아야 할,
액티비티 생명주기
이 액티비티 생명주기를 정확히 알고 각 함수는 어떤 역할을 하는지,
어떻게 작성해야 앱을 효율적으로 만들 수 있는지! 한번 살펴보겠습니다.
전체적인 흐름입니다.
1. onCreate()
앱이 시작하게 되면 가장 먼저 호출되는 함수입니다.
액티비티가 생성되는 함수로써 이 함수는 최초 1번만 호출됩니다.
그리고 실제로 개발자가 가장 많이 코드를 작성하는 부분이죠.
2. onStart()
화면(View) 가 사용자에게 보여지기 시작합니다.
그리고 액티비티가 다른 액티비티에 가려져 있다가 다시 나타날때 호출되는 함수죠.
다른 액티비티에서 데이터를 받을 때 혹은 화면에 데이터를 Setting 할때는 이 함수에서 해주면 좋겠죠?
3. onResume()
화면이 전면에 드러나 사용자에게 보여지고 있고,
실제로 액티비티가 동작하며 호출되는 함수입니다.
4. onPause()
액티비티가 다른 액티비티에 가려지면 호출되는 함수입니다.
이른바 '일시정지' 상태입니다.
데이터를 저장해야 한다면,
이 함수에서 저장하면 됩니다.
그리고 저장된 데이터를 onStart() 에서 가져오면 됩니다.
5. onStop()
onPause() 상태에서 오랜시간 전면에 드러나지 않으면 호출됩니다.
이때 이제 액티비티가 메모리에서 제거될 준비를 하게 됩니다.
6. onRestart()
액티비티가 메모리에서 제거 될 준비를 하고 있는데,
사용자가 그 액티비티를 다시 보려고 하면 호출되는 함수입니다.
이 함수는 onStart() 를 부르며 완전히 전면에 드러나게 됩니다.
7. onDestroy()
액티비티가 완전히 메모리에서 제거됩니다.
흔히 앱을 종료하거나, 다른 앱이 실행되어 메모리 용량이 부족해지면 제거되어 호출됩니다.
감사합니다.