본문 바로가기

gyub's 공부일기/그저 내 공부

Activity LifeCycle

※※   그저 공부하는 흐름대로 작성한 것이니 정돈된 글이 아님 주의 ※※

View가 그려지는 과정 Activity LifeCycle

 

onCreate()

액티비티가 처음 생성될 때 호출

 

onRestart()

액티비티가 중단 되었다가 다시 시작되기 직전에 호출

 

onStart()

액티비티가 사용자에게 보여지기 직전에 호출.

액티비티가 foreground로 나오면 onResume()이 따라오고, 액티비티가 숨겨지면 onStop()이 호출.

 

onResume()

액티비티가 화면에 보여지고 사용자와 상호작용하기 직전에 호출.

이 시점에 액티비티는 액티비티 스택 최상단에 위치.

 

onPause()

다른 액티비티로 넘어가거나, 뒤로 가기를 누르거나, 홈으로 돌아가는 등 현재 액티비티가 사라지기 직전에 호출.

데이터를 유지하기위해 저장하거나 스레드 중지 등 앱이 종료되기 직전에 실행할 기능들을 처리하기에 적당.

이 메서드가 반환 될때까지 다음 액티비티는 재개되지않기 때문에 되도록 일을 빨리 끝내야한다.

액티비티가 foreground로 올라오면 onResume().  보이지 않게 되면 onStop().

 

onStop()

액티비티가 더이상 사용자에게 보여지지 않을 때 호출.

항상 호출되는 것은 아니고 메모리가 부족하면 호출되지 않을 때가 있음.

액티비티가 다시 foreground로 돌아오면 onResume(). 그대로 사라지면 onDestory()

 

onDestroy()

액티비티가 소멸되기 직전에 호출. 앱이 강제로 종료되는 등 호출이 안 될 경우도 있기에 앱 종료 직전에 처리할 작업은 onPause()에서 처리해야함.

시스템이 비상 시에 메모리를 복구해야하 할 경우, onStop()과 onDestory()는 호출 되지 않을 수 있다.

그렇기에, 중요한 영구적 데이터를 보관할 경우 onPause()를 사용해야함.

반응형

'gyub's 공부일기 > 그저 내 공부' 카테고리의 다른 글

Iterator  (0) 2021.04.01
Vector vs ArrayList vs LinkedList  (0) 2021.04.01
String Literal  (0) 2021.04.01
View Lifecycle  (0) 2021.03.31
View가 그려지는 과정  (0) 2021.03.31