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

SyncSession 类

在此页面上

  • io.realm.mongodb.sync
  • 嵌套类摘要
  • 方法摘要
  • 继承方法
  • 方法详细信息
  • addConnectionChangeListener
  • addDownloadProgressListener
  • addUploadProgressListener
  • downloadAllServerChanges
  • getConfiguration
  • getConnectionState
  • getServerUrl
  • getState
  • getUser
  • isConnected
  • removeConnectionChangeListener
  • removeProgressListener
  • 开始
  • 请停止
  • uploadAllLocalChanges
java.lang.Object
io.realm.mongodb.sync.SyncSession

会话控制如何在设备上的单个 Realm 与 Realm 对象服务器上的服务器 Realm 之间同步数据。会话是通过使用SyncConfiguration打开 Realm 实例来创建的。 创建会话后,它将继续存在,直到应用程序关闭或使用此SyncConfiguration的所有线程关闭各自的Realm

会话由 Realm 控制,但可以在出现错误时提供附加信息。 这些错误在SyncSession.ErrorHandler中传递。

创建会话时, Realm将建立与服务器的连接。 此连接由Realm控制,可能在多个会话之间共享。 可以使用addConnectionChangeListener(ConnectionListener)isConnected()见解连接。

会话本身具有与底层连接不同的生命周期。 可以使用getState()查找会话的状态。

SyncSession对象是线程安全的。

修饰符和类型
类和描述
public static final
public static interface
public static interface
修饰符和类型
方法和说明
public synchronized void

添加监听器,跟踪支持此会话的连接的更改。

public synchronized void

添加进度监听器,用于跟踪需要从 Realm 对象服务器下载的变更。

public synchronized void

添加进度监听器,用于跟踪需要从设备上传到 Realm 对象服务器的变更。

公共布尔值

调用此方法将阻塞,直到所有已知的远程更改都已下载并应用于 Realm 或达到指定的超时时间。

public void

调用此方法将阻塞,直到所有已知的远程更改都已下载并应用到 Realm。

返回负责控制会话的SyncConfiguration

获取会话使用的连接的当前状态,如ConnectionState中所定义。

公共 URI

返回 URI 描述此会话连接并与之同步变更的远程 Realm。

获取当前会话的状态,如SyncSession.State中所定义。

公共用户

返回用于连接到 MongoDB Realm 的 SyncConfiguration 定义的 用户 。

公共布尔值

检查会话是否已连接到服务器以及是否可以同步数据。

public synchronized void
public synchronized void

删除进度侦听器。

public synchronized void

尝试启动会话并启用与 Realm 对象服务器的同步。

public synchronized void
stop ()

停止与 Realm 对象服务器的任何同步,直到完全关闭 Realm 后再次重新打开 Realm。

公共布尔值
long timeout,
)

调用此方法将被阻止,直到所有已知的本地更改都已上传到服务器或达到指定的超时时间。

public void

调用此方法将被阻止,直到所有已知的本地更改都已上传到服务器。

  • 从类 java.lang.Object 继承的方法 :getClasshashCodeequalsclonetoStringnotifynotifyAllwaitwaitwaitfinalize

public synchronized void addConnectionChangeListener (
)

添加监听器,跟踪支持此会话的连接的更改。 有关详细信息,请参阅ConnectionState

参数

  • listener - 要注册的侦听器。

抛出异常

提示

另请参阅:

public synchronized void addDownloadProgressListener (
)

添加一个进度侦听器,用于跟踪需要从 Realm 对象服务器下载的变更。ProgressListener将在注册时立即触发,并在注册后定期触发。

参数

  • mode - 使用的模式类型。 有关详细信息,请参阅ProgressMode

  • listener - 要注册的侦听器。

public synchronized void addUploadProgressListener (
)

添加一个进度侦听器,用于跟踪需要从设备上传到 Realm 对象服务器的更改。ProgressListener将在注册时立即触发,并在注册后定期触发。

参数

  • mode - 使用的模式类型。 有关详细信息,请参阅ProgressMode

  • listener - 要注册的侦听器。

public boolean downloadAllServerChanges (
long timeout,
)

调用此方法将阻塞,直到所有已知的远程更改都已下载并应用于 Realm 或达到指定的超时时间。 这将涉及网络访问,因此只能从非用户界面线程调用此方法。在打开 Realm 之前不能调用此方法。

返回:

true 如果在超时之前下载了数据。 false如果操作超时或以其他方式失败)。

抛出异常

调用此方法将阻塞,直到所有已知的远程更改都已下载并应用到 Realm。 这将涉及网络访问,因此只能从非用户界面线程中调用此方法。如果设备处于离线状态,此方法可能永远不会返回。

在会话启动之前无法调用此方法。

抛出异常

返回负责控制会话的SyncConfiguration

返回:

定义和控制此会话的 SyncConfiguration。

获取会话使用的连接的当前状态,如ConnectionState中所定义。

返回:

会话使用的连接状态。

提示

另请参阅:

public URI getServerUrl ()

返回 URI 描述此会话连接并与之同步变更的远程 Realm。

返回:

URI 描述远程 Realm。

获取当前会话的状态,如SyncSession.State中所定义。

请注意,此方法返回后,状态可能会发生变化。

返回:

会话的状态。

提示

另请参阅:

public User getUser ()

返回用于连接到 MongoDB Realm 的 SyncConfiguration 定义的 用户 。

返回:

用于对 MongoDB Realm 上的会话进行身份验证的用户

public boolean isConnected ()

检查会话是否已连接到服务器以及是否可以同步数据。 这是一种最佳猜测努力。 为了节省电量,底层实现使用心跳来检测连接是否仍然可用。 因此,如果没有主动同步数据,并且自上次心跳以来已经过去了一段时间,则连接可能已断开,但此方法仍将返回true

返回:

true 会话是否已连接并准备好同步数据,如果未连接或正在连接,则返回false

public synchronized void removeConnectionChangeListener (
)

删除之前注册的ConnectionListener

参数

  • listener - 要删除的侦听器

抛出异常

public synchronized void removeProgressListener (
)

删除进度侦听器。 如果未注册侦听器,则此方法将不执行任何操作。

参数

  • listener - 要删除的侦听器。

public synchronized void start ()

尝试启动会话并启用与Realm对象服务器的同步。打开Realm 实例时会自动执行此操作,因此仅当使用stop()停止会话时才需要手动执行此操作。

如果会话已启动,则调用此方法不会执行任何操作。

如果getState()返回State.ACTIVE ,则认为会话已启动。 如果会话处于 State.DYING 状态,则会话将移回State.ACTIVE 状态

提示

另请参阅:

public synchronized void stop ()

停止与Realm对象服务器的任何同步,直到完全关闭Realm后再次重新打开 Realm。可以通过再次调用start()来重新启用同步。

如果会话已停止,则调用此方法不会执行任何操作。

public boolean uploadAllLocalChanges (
long timeout,
)

调用此方法将被阻止,直到所有已知的本地更改都已上传到服务器或达到指定的超时时间。 这将涉及网络访问,因此只能从非用户界面线程调用此方法。在打开 Realm 之前不能调用此方法。

返回:

true 如果数据是在超时之前上传的。 false如果操作超时或以其他方式失败)。

抛出异常

public void uploadAllLocalChanges ()

调用此方法将被阻止,直到所有已知的本地更改都已上传到服务器。 这将涉及网络访问,因此只能从非用户界面线程中调用此方法。如果设备处于离线状态,此方法可能永远不会返回。

在打开 Realm 之前无法调用此方法。

抛出异常

后退

SyncConfiguration.InitialFlexibleSyncSubscriptions