안녕하세요. 매번 도움만 받아가는 낭만폭풍입니다 (__)


앱을 하나 만들고 있습니다. (예전부터..) 앱 자체는 이제 거의 완성단계인데
이게 그림이 여러가지 있고 장면을 전환하며
그 그림에 대한 설명을 해주는.....
간단히 말하자면 책읽어주는 어플 정도로 생각하심 됩니다.


뭐 기본적인 구동은 참 잘됩니다. 근데 이게
장면전환 버튼을 엄청나게 빨리눌러대면 오류가 나서 뻗길래 로그캣을보니
메모리 릭이 발생합니다. 코딩은 싱글톤으로 했기때문에 실행 후
추가로 생성되는 객체는 없어요. 다 재활용하는거구요
(제대로된 싱글톤이 맞는진 모르겠지만 ㅠㅠ)


뭐 이건 버튼을 누르면 clickable이 false되고 일정 시간이 지나야
활성화되게끔 만들어서 어느정도 고치긴 했는데
(물론 이래도 clickable값을 무시하고 맘대로 실행되는 부분이 아주 간혹 있긴 합니다.)
진짜 문제는.......

액티비티를 종료했을때 발생했습니다.
뭐 그냥 종료하면 깔끔하게 잘 종료되는데
실행과 종료를 빠르게 반복하다보면
종료시에 IllegalStateException과 RuntimeException 둘중 하나를 랜덤하게(...)뱉으며
앱이 죽어버립니다.
try - catch문을 써봐도 catch문의 로그가 안찍히는걸 보니 아예 catch문으로 넘어가지도 못하는것 같습니다.
생명주기에 따라 stop과 release 적절히 사용했고요.
(물론 release는 객체의 현재 상태와는 상관없이 제대로 동작하는걸로 알고있습니다만...)
참고로 try - catch문에는 사운드를 끄고 액티비티를 종료하는 코드와 예외 발생시 로그를 출력하는 코드로 되어 있습니다.


테스트시에 전혀 발견하지 못했던 오류였는데
악의적으로 앱을 죽이려고 마음먹고 테스트하니까
귀찮은 에러가 한두가지가 아니더군요 -_-;;
특히 영유아층을 위주로 만들어진 앱이라서
예상치 못한 이상한 조작들에 대해 많이 고려해야 합니다..
그래서 일부러 빽키도 막아놨어요
(지금 티스토어 검증 반려만 4번째입니다. 그것도 갤럭시s 2.1때문에... 원래 갤럭시가 이쪽으로 좀 문제가 많긴 하다지만 어쨌든 검증은 통과해야되니까....)



고수분들의 도움이 필요합니다.
이거 해결해야 스터디도 나갈수 있을듯 ㅠㅠㅠㅠㅠ


* 사운드 리소스는 패키지 내의 raw에 있는거구요. 그래서 별도의 스트림은 사용하지 않습니다.
(다른사이트에는 다 스트림을 닫아야되니 하는 소리들만 하시길래....)
안드로이드펍 irc에서 동네북을 맡고있는 퐁퐁입니다.
iOS/Android/Python/PHP
타의로 배운 기술은 잘 까먹습니다.. ㅠㅠ