2013-11-21 3 views
1
public void onDestroy() { 
} 
protected void finalize() { 
} 

단편화가 항상 호출되지는 않습니까?단편화 완료가 호출되지 않음

조각 인스턴스의 내부 필드는 어떻게됩니까? onDestroy에 null 값을 설정해야합니다. 그래서 회수됩니다.

+0

대부분 안드로이드, 특히 주요 안드로이드 구성 요소 (활동, 단편, 서비스 등)로는'finalize()'에 대해 걱정하지 마십시오. 운영 체제는 자원 및 가비지 수집 등을 정리할 때 매우 효율적으로 설계되었습니다. 이 물건은 OS가 특정 객체가 더 이상 필요하지 않다고 판단 할 때 모든 장면 뒤에 수행됩니다. – Squonk

+0

하지만 내 애플 리케이션에서 메모리 스파이크를 진단하려고 해요. 그래서 ... 언제 객체가 회수되는지 알아야합니다. –

+0

다양한 Android SDK 도구를 사용하는 것이 가장 좋은 방법입니다. – Squonk

답변

1

finalize 메서드는 가비지 컬렉터에 의해 호출되며 주어진 시간에 호출 할 수는 없습니다. 내가 onPause 또는들의 OnDestroy 내 정리를하는 경향이

:

이 게시물은 당신에게 더 많은 통찰력을 제공 할 수 있습니다.

+1

"정리"의 의미에 따라 onPause -> onResume -> onPause 사이클이 Activity 또는 Fragment 라이프 사이클 중 가장 엄격한 것을 염두에두고 onPause에서 많은 작업을 수행 할 것을 권하지는 않습니다. – Squonk