接口 ManuallyRecoverUnsyncedChangesStrategy
-
- 所有超级接口:
SyncClientResetStrategy
- 所有已知子接口:
SyncSession.ClientResetHandler
public interface ManuallyRecoverUnsyncedChangesStrategy extends SyncClientResetStrategy
手动解决客户端重置的策略,由错误代码ErrorCode.CLIENT_RESET
确定。同步的 Realm 可能需要重置,因为 MongoDB Realm Server 遇到错误,必须从备份中恢复,或者因为客户端连接到服务器已经太长时间,因此服务器已轮换日志。
由于服务器没有使客户端完全更新所需的完整信息,因此会发生客户端重置。
手动重置过程如下:将 Realm 的本地副本复制到恢复目录以妥善保管,然后从原始位置删除。 下次打开该 URL 的 Realm 时,将自动从 MongoDB Realm 重新下载该 Realm,并且可以正常使用。
在 Realm 的本地副本与备份远程副本分离后,写入 Realm 的数据将存在于 Realm 文件的本地恢复副本中。 重新下载的 Realm 最初仅包含在服务器上备份 Realm 时存在的数据。
可以通过以下两种方式之一启动客户端重置过程:
-
手动运行
ClientResetRequiredError.executeClientReset()
。 在调用此方法之前,必须关闭所有 Realm 实例。 - 如果未手动执行客户端重置,则下次关闭并重新打开所有 Realm 实例时将自动执行客户端重置。 这很可能发生在应用重新启动时。
-
-
方法摘要
所有方法 实例方法 抽象方法 修饰符和类型 方法 说明 void
onClientReset(SyncSession session, ClientResetRequiredError error)
指示已发生客户端重置的回调。
-
-
-
方法详细信息
-
onClientReset
void onClientReset( SyncSession session, ClientResetRequiredError error)
指示已发生客户端重置的回调。 应尽快处理此问题,因为对 Realm 的任何进一步更改都将不会与服务器同步,并且必须手动从备份 Realm 移动到新 Realm。- 参数:
session
-SyncSession
发生此错误。error
-ClientResetRequiredError
特定的客户端重置错误。
-
-