2012-03-08 4 views
0

제가 상속을 잘못 사용하고 있기 때문에 제 문제가 있다고 생각합니다. 나는 4 개의 액티비티를 가지며, 모두 공통 코드 (onClick, onItemClick, 정적 및 비 정적 메서드)를 공유하는 BaseActivity를 확장합니다. 각 활동은 이미지를 포함하여 웹에서 데이터를 얻습니다. 내가 전체 애플 리케이션을 사용할 때 메모리 누수 오류가 발생했습니다 (VM은 xxx 바이트를 할당하지 못하게됩니다).복잡한 활동 문제

이 4 가지 활동을 확장하여 Base Activity의 내부 클래스와 같은 것으로 만들기 때문에 onDestroy() 메소드가 전환 될 때 호출되지 않기 때문입니다. 또한 GC는 RAM을 회수하지 않고 힙이 막히게됩니다. BaseActivity는 모든 데이터 (예 : 이미지)를 보유하므로 데이터를 다시 만들 필요없이 뒤로 버튼을 클릭 할 때 표시 할 수 있습니다.

그렇다면 다른 옵션은 헬퍼 클래스를 사용하여 공통 코드를 공유하여 분리하는 것입니다. 그런 다음 활동간에 전환 할 때 계속해서 데이터를 다운로드하게됩니다.

나는 맞고 어떤 해결책이 있습니까?

답변

0

그래서 일부 코드를 보지 않고도 대답하기는 어렵지만 Activity 클래스를 확장해도 메모리 누수가 발생해서는 안됩니다. 웹 요청에서 많은 불필요한 데이터에 매달려있는 것보다 이미지를 다운로드한다고 했지? 나는 거기를보고 시작할 것입니다.