내 안드로이드 애플 리케이션은 시간이 지남에 따라 점점 더 많은 메모리를 사용하고 있습니다. 나는 힙 덤프를 가져 와서 그것을 MAT로 분석했다. 내 안드로이드 애플 리케이션은 너무 많은 메모리를 소비합니다
그래서 (뒤로 버튼) 나 응용 프로그램을 종료 한 후에 메모리에서 지워지지 않습니다 내 활동을 한 것 같아 내가 응용 프로그램을 다시 시작할 때 다음 새로운 인스턴스가 생성됩니다
다음은 주요 누출 용의자 기억을 채 웁니다.
이제 PhantomReferences인데 잠시 후에 또는 앱을 종료 할 때 메모리가 지워지지 않는 이유는 무엇입니까? 메모리는 다른 앱 등을 사용하는 경우에도 절대로 지워지지 않습니다. 앱을 완전히 닫는 유일한 방법은 작업 관리자를 사용하여 수동으로 앱을 종료하는 것입니다.
무정부 상태의 메모리 소비를 방지하려면 어떻게해야합니까?
편집 :
문제점을 발견했습니다! 각 액티비티는 Thread.setDefaultUncaughtExceptionHandler()로 CustomExceptionHandler를 설정하고 있으며 CustomExceptionHandler가 컨텍스트에 대한 참조를 유지하고 있다고 생각했습니다. 그래서 컨텍스트 레퍼런스를 없애고 onDestroy() 메서드에서 DefaultUncaughtExceptionHandler를 null로 만들었습니다. 그게 정말 나아!
스레드, Asyntasks가 있습니까? – Jonas
예 실제로 모두 – Alexis
... 그들을 죽입니까? – Jonas