작성한 부스트코스 후기입니다.
여러분들의 성원에 더 노력하는 부스트코스가 되겠습니다.
감사합니다.
******************************************
1)링크: https://blog.naver.com/zhfptm12/221813087149
2)작성날짜: 20/02/17
한 화면이 보이고 있는데 다른 화면이 실행되면 기존 화면은 아래쪽으로 깔리게 되고 중지된다고 했습니다.
그런데 단말기는 전화기니까 여러분의 앱을 사용하고 있을 때도 전화를 받을 수 있도록 만들어줍니다.
이렇게 하나의 액티비티가 보이지 않게 되었을 때 무언가 해줘야 합니다.
액티비티 수명주기는 액티비티의 상태가 변할 때마다 안드로이드 시스템에서 각 상황에 맞는 메서드를 자동으로 호출해줌으로써 여러분이 직접 각각의 상태에 맞는 코드를 넣어 액티비티의 상태에 따라 제어할 수 있게 해줍니다.
액티비티의 수명주기와 그 메서드에 대해서 포스팅하겠습니다.
수명주기
액티비티는 안드로이드 시스템에 관리되기 때문에 언제라도 중지되거나 메모리에서 삭제될 수 있습니다.
수명주기는 앱의 상태에 맞추어 여러분이 어떤 기능을 동작시키는 코드를 넣을 수 있도록 해 줍니다.
수명주기는 화면의 상태에 따라 달라지는데 각각의 상태에 따라 자동으로 호출되는 메서드가 다릅니다.
먼저 화면이 눈에 보이게 되는 과정에서 onCreate, onStart, onResume 메서드가 차례대로 호출됩니다.
그리고 화면이 없어지는 과정에서 onPause, onStop, onDestroy 메서드가 호출됩니다.
데이터의 복구
수명주기 메서드가 자동 호출되도록 만든 이유는 사용자가 입력했던 데이터를 복구하거나 상태 정보를 복구할 수 있도록 만들기 위해서입니다.
따라서 화면이 없어질 때 데이터를 임시로 저장해두었다가 화면이 다시 보일 때 복구할 수 있어야 하는데 이때 사용되는 메서드가 onPause와 onResume입니다. onPause 메서드는 화면이 눈에서 보이지 않게 될 때 항상 호출되므로 이때 데이터를 저장해둘 수 있습니다.
데이터는 SharedPreferences를 이용하면 간단하게 저장할 수 있습니다.
onResume 메서드는 화면이 다시 보일 때 항상 호출되므로 이때 저장해 둔 데이터를 가져와 화면에 설정할 수 있습니다.
<생각해보기>
1. 메인 액티비티에서 메뉴 액티비티를 띄운다고 할 때 각각의 액티비티 별로 그 안에 정의한 수명주기 메서드가 호출될까요?
- 네
2. onCreate 외에 자주 호출되는 수명주기 메서드는 어떤 것일까요?
- 앱이 실행될 때에는 onStart() onResume() onPause() , 앱이 중단될 때에는 onStop() onDestroy() 등이 사용되므로 자주 호출될 것 같습니다.
[출처] [부스트 코스] 안드로이드 - 액티비티 수명주기 03주 차|작성자 zhfptm12