[android][kotlin] Activity 생명주기 onDestory callback

Juyeong·2022년 3월 21일
0

Android

목록 보기
1/2
post-thumbnail

우선 맨 처음 의도한 것은 다음과 같다.

회원가입 도중에 유저가 종료 시(Stop 'App'), 중간 정보를 저장하고 다시 앱을 열었을 때(Run 'App') 중간 정보에 따라 입력했던 회원가입 정보들을 불러오기

이때 핵심은 SharedPreferences를 통해 앱이 onDestroy 될 때, 데이터가 저장되는 것

SharedPreferences는 아래 링크 참조
Android Developer/SharedPreferences


그래서 구글링도 해보고 아래와 같이 Android Document에서 onDestory를 찾아보았다.

영어로 되어있지만 두번째 문단 첫 문장만 봐도 무언가 잘못되었음을 알 수 있다.

Note: do not count on this method being called as a place for saving data!

onDestory 메소드를 데이터를 저장하는 공간으로 사용하지 말라는 것..
정확히 내가 하려던 것이라 매우 머쓱했다. 시스템이 onDestroy 메소드를 호출하지 않고 Activity의 호스팅 프로세스를 단순히 종료하는 상황이 있기 때문에 (앱을 강제 종료하는 경우가 이에 해당 되는 것 같다) 프로세스가 사라진 후에 남아있는 작업을 수행하는 역할로 쓰면 안된다는 것.

🤷‍♂️ onDestory는 언제 호출되나?

  1. 시스템 리소스 부족(메모리, CPU 등)
  2. activity 혹은 앱 종료 시
  3. finish() 등을 통해 activity에 도달할 수 없을 때

위에 말했다 싶이 앱을 강제 종료하는 경우에는 onDestory가 호출이 되지 않는데, 굳이 강제종료 시점을 알고 싶은 경우 Service를 이용해 Task가 종료된 시점을 체크하는 방법도 있는 것 같다.

생명주기에 대한 이해도가 많이 부족한 것 같다. 기본적이면서도 앱 개발에 필수적인 개념이니 도큐먼트를 다시 정독해보자 ..

profile
ios / Android developer 💻

0개의 댓글