※※ 그저 공부하는 흐름대로 작성한 것이니 정돈된 글이 아님 주의 ※※
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 |