Docs 菜单
Docs 主页
/ /
Atlas Device SDKs
/ / /

接口 DiscardUnsyncedChangesStrategy

在此页面上

  • io.realm.mongodb.sync
  • 方法摘要
  • 继承方法
  • 方法详细信息
  • onAfterReset
  • onBeforeReset
  • onError

实现的接口:

该策略通过丢弃任何未同步的数据来自动解决客户端重置问题,但在其他情况下保持Realm打开。 任何更改都将通过普通集合和对象通知进行报告。同步的Realm可能需要重置,因为MongoDB Realm Server 遇到错误,必须从备份中恢复,或者因为客户端连接到 Realm Server 已经太长时间了。服务器,以便服务器已轮换日志。

由于服务器没有使客户端完全更新所需的完整信息,因此会发生客户端重置。

丢弃未同步更改重置进程如下:当触发客户端重置时,会调用 onBeforeReset(Realm)回调,提供重置前Realm的一个实例和重置后的另一个 Realm 实例,均为只读。 重置完成后,将使用最终Realm的实例调用回调onAfterReset(Realm, Realm )

事件丢弃未同步的数据不足以解决调用onError(SyncSession, ClientResetRequiredError)的重置问题,则允许手动解决重置问题,就像在ManuallyRecoverUnsyncedChangesStrategy.onClientReset(SyncSession, ClientResetRequiredError)中完成的操作一样。

修饰符和类型
方法和说明
public void
Realm before,
Realm after
)

发生客户端重置后调用的回调。

public void

指示即将发生客户端重置的回调。

public void

指示无法完成无缝客户端重置的回调。

public void onAfterReset (
Realm before,
Realm after
)

发生客户端重置后调用的回调。 它提供了两个 Realm 实例,一个是冻结实例,显示重置前的状态,另一个是显示当前状态的常规 Realm,可用于从重置中恢复对象。

参数

  • beforeRealm在重置之后冻结了Realm 。

  • after — 重置后的Realm Realm。

public void onBeforeReset (
Realm realm
)

指示即将发生客户端重置的回调。 它提供了将被重置的 Realm 冻结实例。

参数

  • realm — 将Realm冻结在重置之前的状态。

public void onError (
)

指示无法完成无缝客户端重置的回调。 应将其处理为ManuallyRecoverUnsyncedChangesStrategy.onClientReset(SyncSession, ClientResetRequiredError)

参数

后退

ConnectionState