우선 맨 처음 의도한 것은 다음과 같다.
회원가입 도중에 유저가 종료 시(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의 호스팅 프로세스를 단순히 종료하는 상황이 있기 때문에 (앱을 강제 종료하는 경우가 이에 해당 되는 것 같다) 프로세스가 사라진 후에 남아있는 작업을 수행하는 역할로 쓰면 안된다는 것.
finish()
등을 통해 activity에 도달할 수 없을 때위에 말했다 싶이 앱을 강제 종료하는 경우에는 onDestory가 호출이 되지 않는데, 굳이 강제종료 시점을 알고 싶은 경우 Service를 이용해 Task가 종료된 시점을 체크하는 방법도 있는 것 같다.
생명주기에 대한 이해도가 많이 부족한 것 같다. 기본적이면서도 앱 개발에 필수적인 개념이니 도큐먼트를 다시 정독해보자 ..