接口 DiscardUnsyncedChangesStrategy
-
- 所有超级接口:
SyncClientResetStrategy
public interface DiscardUnsyncedChangesStrategy extends SyncClientResetStrategy
该策略通过丢弃任何未同步的数据来自动解决客户端重置问题,但在其他情况下保持 Realm 打开。 任何更改都将通过collection和对象通知进行报告。同步的 Realm 可能需要重置,因为 MongoDB Realm Server 遇到错误,必须从备份中恢复,或者因为客户端连接到服务器已经太长时间,因此服务器已轮换日志。
由于服务器没有使客户端完全更新所需的完整信息,因此会发生客户端重置。
丢弃未同步更改重置过程如下:当触发客户端重置时,会调用
onBeforeReset(Realm)
回调,提供重置之前和重置之后 Realm 的另一个实例,均为只读。重置完成后,将使用最终 Realm 的实例调用回调onAfterReset(Realm, Realm)
。如果丢弃未同步的数据不足以解决将调用
onError(SyncSession, ClientResetRequiredError)
的重置,则可以像在ManuallyRecoverUnsyncedChangesStrategy.onClientReset(SyncSession, ClientResetRequiredError)
中一样手动解决重置问题。
-
-
方法摘要
所有方法 实例方法 抽象方法 修饰符和类型 方法 说明 void
onAfterReset(Realm before, Realm after)
发生客户端重置后调用的回调。void
onBeforeReset(Realm realm)
指示即将发生客户端重置的回调。void
onError(SyncSession session, ClientResetRequiredError error)
指示无法完成无缝客户端重置的回调。
-
-
-
方法详细信息
-
onBeforeReset
void onBeforeReset( Realm 域)
指示即将发生客户端重置的回调。 它提供了将被重置的 Realm 冻结实例。- 参数:
realm
- 将Realm
冻结在重置之前的状态。
-
onAfterReset
void onAfterReset( Realm before, Realm after)
发生客户端重置后调用的回调。 它提供了两个 Realm 实例,一个是冻结实例,显示重置前的状态,另一个是显示当前状态的常规 Realm,可用于从重置中恢复对象。
-
onError
void onError( SyncSession session, ClientResetRequiredError error)
指示无法完成无缝客户端重置的回调。 应将其作为ManuallyRecoverUnsyncedChangesStrategy.onClientReset(SyncSession, ClientResetRequiredError)
进行处理。- 参数:
session
-SyncSession
发生此错误。error
-ClientResetRequiredError
特定的客户端重置错误。
-
-