개발자 블로그

시스템이 앱 종료시키는 상황 테스트하는 방법 본문

프로그래밍/안드로이드

시스템이 앱 종료시키는 상황 테스트하는 방법

로이드.Roid 2017. 10. 25. 17:55

앱을 사용하다가 백그라운드로 전환 된 후에 시간이 한참 지나면 시스템이 메모리 확보를 위해서 앱을 종료 시킨다. 

다시 앱이 Active 상태로 전환 될 때 정상적인 동작을 위해서는 onSaveInstanceState 함수를 오버라이딩해서 필요한 멤버변수의 값을 저장하는 등의 필요한 조치를 해야 된다. 

onCreate에서는 인자로 넘어온 Bundle값을 체크해서 다시 멤버변수의 값을 복원해주는 등의 작업을 해야 되고.


사실 코딩하는건 간단한데, 테스트 하는게 쉽지가 않다. 시스템이 앱을 kill 시키는 경우를 만들어야 되는데 사용자가 제어할 수 있는게 아니니깐.

내가 가지고 있는 안드로이드 책에는 DDMS에서 프로세스를 종료시키면 된다고 써있는데.. 막상 해보면 앱이 완전히 종료되어 버린다. 


사실 [개발자 옵션]에서 간단하게 이런 상황을 만들 수 있다. 

[개발자 옵션] 화면의 하단을 보면 아래 사진처럼 "액티비티 유지 안함" 이라는 옵션이 있다.

해당 옵션을 체크(체크 상태로 유지)하면 앱(액티비티)이 백그라운드로 전환될 때 바로 메모리에서 제거된다. 시스템이 백그라운드에 있던 앱을 종료시키는 상황을 바로 재현할 수 있게 되는거다.

다만 기기마다 동작이 다를 수 있다고 한다. (아마도 제조사에서 어떻게 구현했는지에 따라 다를 것 같다.) 

일단 내가 테스트한 LG G2에서는 원하는대로 잘 동작한다.

Comments