내용이 너무 추상적이네요 ㅠ 수수께끼도 아니그..
중지됬을 때 에러로그나 A-B-C 에서 어떤 작업을 수행하는지 정도는 적어주시고
그 아래에 있는 프로젝트도 마찬가지로 뭐하는 녀석인지 알려주시면 답변다는 분들이 조언 많이 해주실거에요!
중지될때의 에러로그를 보시면 바로 답 나오실텐데 '-'
암튼 제 경험상 조심스레 추측하자면..
첫 번째 경우는 OOM 이 발생했을 것 같아요. 혹시 C액티비티에서 이미지 작업을 수행하지 않나요?
예를 들어 C액티비티의 비트맵변수에 이미지리소스를 할당하고 나서 백키 등으로 되돌아오는 경우
리사이클 및 널할당으로 직접 해제하지 않으면 메모리 릭이 발생하고 또 다시 할당을 시도할때는
어플에 할당된 메모리 초과로 중지되버리는거죠~ 쉽게 말해서 하나의 어플당 일반적으로 힙메모리 32MB 가
할당되어있는데요 C에서 이미지작업으로 인해 20MB 를 사용한다고 가정했을 때 비트맵리소스를 해제하지않으면
B로 되돌아와도 그대로 유지되고 있다가 다시 C로 진입시 +20MB 를 다시 할당하려고 시도하여
총 40MB로 OOM이 발생하는거죠. OOM이 맞다면 메모리관리법에 대해서는 직접 한번 찾아보세요~
그리고 한가지더 자세한 설명은 생략하고 스레드를 사용한다면 생명관리를 한번 체크해보세요!
두 번째 경우는 소프트웨어적 관점인 안드로이드 버전과 하드웨어적 관점인 기기의 물리적 스펙을 따져봐야해요
예를 들어 에뮬레이터의 안드로이드 버전이 4.4.2 인데 핸드폰은 2.3.3 이라고 할때
글쓴님이 킷캣에서부터 지원하는 api를 진저에서 사용하려고 한다면 지원하지 않는 api 이므로
미정의동작이 발생할 수 있습니다. 또한 에뮬레이터 환경과 실제 기기의 외부메모리 등에 접근하고자 하는 경우
경로가 다를 수도 있구요. 이런 등등의 예상치 못한 경우를 대비하여 예외처리를 해주지않으셨다면
뻗어버리는거지요 '-'