2014-11-09 5 views
0

일부 컨텍스트 :Observable 클래스에서 addObserver 및 deleteObserver의 동작을 명확하게 설명하십시오.

Activity 클래스에 옵저버를 만들고이를 Activity의 onCreate 메서드에서 Observable 클래스에 추가하고 있습니다. Observable은 본질적으로 Application 클래스에 의해 보유됩니다. 나는 그것을 onDestroy의 observable에서 삭제할 것이다. 그러나 onDestroy가 호출되지 않거나 onDestroy의 모든 코드가 실행되지 않을 수도있는 것처럼 보입니다. 관찰 할 수있는 외부 클래스에있는 객체에 대한 참조가 있기 때문에 객체가 계속 유지 될지 걱정됩니다.

관찰자가 활동을 초과하고 활동이 재생성되면 동일한 유형의 다른 관찰자가 생성되어 관찰 가능에 추가됩니다. 이 경우 동일한 유형의 옵서버가 삭제됩니까?

나는 이것을 시행 착오와 함께 발견 할 수있다. 그러나 나는이 질문에 대한 답을 다른 곳에서 찾지 못했다.

TL; DR : 두 번째를 추가 할 때

나는 같은 종류의 두 개의 옵저버 클래스를 만들고, 자바에서 하나의 관찰 가능한 클래스에 둘 다 추가하는 경우는, 최초의 관찰자를 대체 자바 것인가?

이 문서를 참조 : 그런 경우 이 http://developer.android.com/reference/java/util/Observable.html

그것은 내게 분명하지 않다.

답변

1

기존 관찰자는 제거되지 않습니다. Observable의 소스 코드에서이를 볼 수 있습니다. 동일한 유형을 가지고 있음에도 불구하고 생성 된 객체가 다릅니다. 그들은 둘 다 관찰자의 벡터에 추가됩니다.

+0

좋은 점은 코드를 확인 했어야합니다. 답장을 보내 주셔서 감사합니다! – jeff

+0

전혀 문제가 없습니다. –