마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

앱 종료시 메모리 해제가 잘 안되는 것 같습니다.

0 추천
1. A액티비티에서 B액티비티를 intent 로 실행 한 후 A액티비티를 finish 한 결과

2. A액티비티에서 back 버튼으로 종료 또는 finish()로 종료 시킨 결과

 

두상황 모두 onDestory는 타고 종료가 됩니다.

하지만 DDMS에서 메모리를 확인하였을때,

1번상황 A에서 B액티비티로 넘어갔을때 메모리 해제가 되지 않습니다.

2번상황 A앱은 종료되어 바탕화면이 보이지만... DDMS상의 메모리는 해제되지 않습니다.

 

system.exit(0)을 해주면 메모리도 전부 해제되지만... 그냥 finish() 로는 그렇지가않네요..

이게 정상은 아닌듯 한데.. 왜그럴까요...

심지어 DDMS상에 앱이 종료되어도 초록색 벌래가 계속 남아있고... 메모리도 그대로 계속 유지되네요.

앱이 종료되면 연결이 끊어져서 안보여야 할 듯 한데요..

 

어디선가 문제가 있는 것일까요?
왕초심자 (350 포인트) 님이 2014년 5월 12일 질문

1개의 답변

+4 추천
 
채택된 답변
앱을 종료한다고 메모리를 바로 정리하지는 않습니다.

안드로이드 OS 구조가 그렇습니다.

그리고 A액티비티와 B액티비티가 같은 앱 안에 있는 경우 당연히 메모리 정리를 하지 않습니다.

마지막으로 System.exit는 쓰지 마세요. 안드로이드 OS가 비정상 종료로 간주하여 앱을 다시 띄울 수도 있다고 합니다.
익명사용자 님이 2014년 5월 12일 답변
왕초심자님이 2014년 5월 12일 채택됨
한 3년전쯤에는 이런 질문들이 많았었는데 다시보내 새롭네요 ㅎㅎ
아하.. 그렇군요 감사합니다 ^^
...