안드로이드 개발 질문/답변
(글 수 45,052)
java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1968)
위와 같은 예외를 토하면서 앱이 죽고 있습니다.
재현 경로는 앱 실행후 홈키로 나간다음(백그라운드 진입) 다른 앱들을 사용해서 메모리가 모자르게 합니다.
브라우저 게임등..
그럼 안드로이드가 앱을 자동 종료 시키겠죠. 메모리가 부족하니.
그렇게 하고 나서 다시 테스크 전환 버튼이나(허니컴이상) 앱 아이콘을 눌러서 들어가면 저런 애러를 토합니다.
안드로이드 OS가 앱을 죽일때 모조리 다 죽이지 못하고 ACtivity만 죽이고 그하위에 포함된 View들은 못죽여서 그런게 아닌가 싶습니다.
그래서 앱이 내려가는 때에 모조리 날릴수 있도록 명령을 주고 싶지만 안드로이드 OS는 앱이 완전 종료되는 타이밍조차 잡을 수가 없게 되어 있더군요.(뭐 이런...)
1. 앱이 종료될때 프로세스테 포함된 메모리를 다 날릴 수 있는 방법이 있을까요?(설정이라든가)
2. 백그라운드에서 장시간 방치 또는 메모리 부족이 되었을 경우 그다음 실행 할때는 처음부터 시작하게 하고 싶습니다.
어떻게 해야 할까요???




님이 예측이 잘못된게 아닌가 싶습니다.
저도 어플이 강제로 죽고(LMK) 다시 살아나도록 되어 있지만 위와 같은 현상을 본적이 없습니다.
parent view 에 같은 view 가 두번 add될 수 있는지 확인해 보시는게 좋을 듯 합니다.
아니면...
child view 의 getParent 로 null 일 경우에만(이때는 add 가 안된 경우겠죠) add 하도록 하는 편법(?) 도 있습니다.