안드로이드 개발 질문/답변
(글 수 358)
안녕하세요?
아래 처럼 new 로 인스턴스를 생성하고 특정 변수에 대입하지 않는 경우
이 인스턴스의 생명 주기는 어떻게 되나요?
new SingleMediaScanner(this, file);
이런 문법이 가능한지도 몰랐는데 오늘
http://stackoverflow.com/questions/4646913/android-how-to-use-mediascannerconnection-scanfile
에서 소스 보다보니까 이런게 나오더라고요.
이 인스턴스가 특이한게.. 함수로 콜백을 등록하고 후에 통보받는 거거든요
그래서 이 객체가 어중간하게 갑자기 사라지면 문제가 됩니다.
이렇게 참조가 처음부터 없는 new 인스턴스는
GC 가 언제까지 살려둘까요?
내부 클래스에서 참조하는 객체들이 더 이상 없고 프로그램 실행 흐름도 타지 않으면
제거 한다거나 뭐 그럴거 같은데 찾아봐도 별 내용이 없네요.
저렇게하면 어플이 종료되기전까지 없어지지 않지 않을까요?
gc로 없애려면 =null을 주어야하는데 저렇게하면 계속 메모리에상주해있을거같은데..