我正在使用Couchbase Lite与Android。我有一个文档,我需要添加一个Document.ChangeListener(在文档更改时更新UI)。Couchbase Lite中删除Document.ChangeListener
我添加它,但它似乎被“自动”删除,我找不到原因。我有一个方法“attachDocumentChangeListener”,我称之为:
public void attachDocumentChangeListener(String documentId, final DocumentChangeListener<TData> listener) {
getDefaultDatabase().getDocument(documentId).addChangeListener(listener);
}
我不碰我的设备了,我就通过其他设备的文件的更新。这应该触发ChangeEvent,但似乎不会发生。
我注意到当文档更新时,文档没有ChangeListener
(即使我之前添加了一个合理的文档)。要检查ChangeListener
何时被删除,我在Document
类中为函数removeChangeListener(ChangeListener changeListener)
添加了一个断点,但从未调用该断点,并且在更新修订时字段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。
任何人都可以帮助吗?