2016-07-17 6 views
0

단검 2는 구성 요소가 파괴되었을 때 종속성을 파괴합니까 (하위 구성 요소에 대한 참조가 null로 설정되어 있습니까?)? AppComponent (Singleton 범위를 가지고 있으며, 한 응용 프로그램이 실행되는 동안 살고있는), ApiComponentDataComponent :단검 2 구성 요소 종속성 수명주기

나는 3 개 안드로이드 응용 프로그램의 구성 요소가 있습니다. ApiComponentDataComponent 모두 AppComponent (예 : 버스)의 일부 개체를 사용하므로 다른 두 구성 요소 (dependencies = {AppComponent.class})에 대한 종속성으로 AppComponent을 추가해야한다고 생각했습니다. 내 로그인 활동에 DataComponent이 필요하지 않으므로 로그 아웃시 null을 참조로 설정하고 싶습니다. 그러나 AppComponent이 종속성으로 정의 되었기 때문에 도려내거나 가비지 수집 된 것인지 궁금합니다.

답변

1

AppComponent의 인스턴스를 유지 한 다음 가비지 컬렉터에서 수집 할 수 없습니다.

2

대부분의 사람들은 내가 한 일로 AppComponent의 인스턴스를 Application 안에두고 계속 oncreate()으로 초기화했습니다. 이렇게하면 응용 프로그램 수명주기와 함께 살며 싱글 톤인 것처럼 보입니다.

동일한 구성 요소를 재사용하는 동안 앱 전체에서 동일한 종속성을 갖게됩니다.

전체적으로 개체를 저장하는 위치와 방법에 따라 달라집니다. 해당 라이프 사이클에 맞게 적절히 배치하십시오. 어떤 식 으로든 Activity을 사용하는 구성 요소가있는 경우, 활동이 존재하는 것보다 길게하지 마십시오.

관련 문제