안드로이드 개발 질문/답변
(글 수 45,052)
일반적인 task killer 앱을 실행해서
제가 만든 app 을 죽이고,
그후 제가 만든 app을 실행하면 앱이 최초 1회는 무조건 죽어버립니다.
분석을 해보니
앱 실행중 back 키가 아닌 home 키로 앱이 background 상태에서 task killer 로 앱을 죽이면 문제가 발생했습니다.
상세원인은
static 변수가 task killer에 의해 null 로 세팅되는데, task killer 가 이런식으로 static 변수들의 메모리만 정리해주고
app 자체를 완전히 죽이지 못한것 같습니다. 그래서 task killer 적용 후 앱 실행시
앱이 최초 activity 부터 구동되는게 아니라 이전에 구동된 마지막 activity로 바로 실행이 되면서
static 변수 값을 참조하면서 죽네요
환경설정>앱>앱 강제종료 메뉴로 앱을 죽이면 잘 되는데, 왜 task killer 같은 앱으로 메모리 정리시에는
static 변수같은것만 정리하고 앱 자체를 완전히 강제종료를 못하는지...
암튼 이런 경우 제가 app 단에서 어떤 처리를 하는게 맞는지요? 특정 옵션을 주면 task killer 동작시 앱이 완전히 종료되는 옵션..뭐 이런게 있나요?




static 변수만 날라가는 경우는 많이 있을 수 있습니다.
구지 킬러앱으로 죽이지 않더라도, 안드로이드 시스템에 의해서 메모리가 부족해서 날라가는 경우도 있을 수 있구요.
null 체크를 해주던가, 싱글턴과 같은 것을 사용하던가 해서 static 이 날라가도 다시 초기화해서사용할 수 있도록 해야합니다.