저는 Android에서 Couchbase Lite를 사용하고 있습니다. Document.ChangeListener (이 문서가 변경 될 때마다 UI를 업데이트하기 위해)를 추가해야하는 문서가 있습니다.Document.ChangeListener가 Couchbase Lite에서 제거되었습니다
나는 그것을 추가하지만 "자동적으로"제거 된 것으로 보이며 나는 그 이유를 알 수 없다. 내가 전화하는 방법 "attachDocumentChangeListener"이 있습니다
public void attachDocumentChangeListener(String documentId, final DocumentChangeListener<TData> listener) {
getDefaultDatabase().getDocument(documentId).addChangeListener(listener);
}
난 더 이상 내 장치를 만지지 마십시오과 나는 또 다른 장치를 통해 문서에 대한 업데이 트를합니다. 이것은 ChangeEvent를 트리거해야하지만 발생하지는 않습니다.
문서가 업데이트되면 문서에 ChangeListener
이 없습니다 (이전에 하나의 juste를 추가 한 경우에도 있음). ChangeListener
이 언제 제거되었는지 확인하려면 removeChangeListener(ChangeListener changeListener)
클래스에 Document
클래스에서 중단 점을 추가했지만 호출 된 적이 없으며 개정판을 업데이트 할 때 changeListeners
필드가 여전히 비어 있습니다.
changeListeners
에 다른 중단 점을 추가하고 필드 감시 점을 추가했습니다. 다음은이 중단 점의 구성의 스크린 샷입니다 :
은 내가 (다른 장치와 문서를 업데이트) 작업을 반복하지만 제거 된 ChangeListener를 보여 로그하지만 아무것도 보지 않았다 (모르고하는 방법)
{[email protected]}.changeListeners will be accessed at com.couchbase.lite.Document.addChangeListener(Document.java:169)
size : 0, ID : 8980450c-5ddb-4181-a7bf-3e162c67a68f
{[email protected]}.changeListeners will be accessed at com.couchbase.lite.Document.addChangeListener(Document.java:169)
size : 1, ID : 8980450c-5ddb-4181-a7bf-3e162c67a68f
{[email protected]}.changeListeners will be accessed at com.couchbase.lite.Document.addChangeListener(Document.java:169)
size : 0, ID : 8980450c-5ddb-4181-a7bf-3e162c67a68f
{[email protected]}.changeListeners will be accessed at com.couchbase.lite.Document.revisionAdded(Document.java:598)
size : 0, ID : 8980450c-5ddb-4181-a7bf-3e162c67a68f
{[email protected]}.changeListeners will be accessed at com.couchbase.lite.Document.revisionAdded(Document.java:598)
size : 0, ID : 8980450c-5ddb-4181-a7bf-3e162c67a68f
우리는 removeChangeListener
는
누군가를 도울 수라고 한 적이 있지만 changeListeners
크기가 0으로 설정되어있는 것을 볼 수있다?