SyncSession 类
在此页面上
io.realm.mongodb.sync
会话控制如何在设备上的单个 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 | getServerUrl () 返回 URI 描述此会话连接并与之同步变更的远程 Realm。 |
getState () 获取当前会话的状态,如SyncSession.State中所定义。 | |
公共用户 | getUser () 返回用于连接到 MongoDB Realm 的 SyncConfiguration 定义的 用户 。 |
公共布尔值 | isConnected () 检查会话是否已连接到服务器以及是否可以同步数据。 |
public synchronized void | 删除之前注册的ConnectionListener 。 |
public synchronized void | 删除进度侦听器。 |
public synchronized void | start () 尝试启动会话并启用与 Realm 对象服务器的同步。 |
public synchronized void | stop () 停止与 Realm 对象服务器的任何同步,直到完全关闭 Realm 后再次重新打开 Realm。 |
公共布尔值 | 调用此方法将被阻止,直到所有已知的本地更改都已上传到服务器或达到指定的超时时间。 |
public void | 调用此方法将被阻止,直到所有已知的本地更改都已上传到服务器。 |
继承方法
从类 java.lang.Object 继承的方法 :
getClass
、hashCode
、equals
、clone
、toString
、notify
、notifyAll
、wait
、wait
、wait
、finalize
方法详细信息
addConnectionChangeListener
添加监听器,跟踪支持此会话的连接的更改。 有关详细信息,请参阅ConnectionState 。 参数
抛出异常
|
addDownloadProgressListener
添加一个进度侦听器,用于跟踪需要从 Realm 对象服务器下载的变更。ProgressListener将在注册时立即触发,并在注册后定期触发。 参数
|
addUploadProgressListener
添加一个进度侦听器,用于跟踪需要从设备上传到 Realm 对象服务器的更改。ProgressListener将在注册时立即触发,并在注册后定期触发。 参数
|
downloadAllServerChanges
调用此方法将阻塞,直到所有已知的远程更改都已下载并应用于 Realm 或达到指定的超时时间。 这将涉及网络访问,因此只能从非用户界面线程调用此方法。在打开 Realm 之前不能调用此方法。 返回:
抛出异常
|
public void downloadAllServerChanges () |
---|
调用此方法将阻塞,直到所有已知的远程更改都已下载并应用到 Realm。 这将涉及网络访问,因此只能从非用户界面线程中调用此方法。如果设备处于离线状态,此方法可能永远不会返回。 在会话启动之前无法调用此方法。 抛出异常
|
getConfiguration
public SyncConfiguration getConfiguration () |
---|
getConnectionState
public ConnectionState getConnectionState () |
---|
getServerUrl
public URI getServerUrl () |
---|
getState
public SyncSession.State getState () |
---|
getUser
isConnected
public boolean isConnected () |
---|
检查会话是否已连接到服务器以及是否可以同步数据。 这是一种最佳猜测努力。 为了节省电量,底层实现使用心跳来检测连接是否仍然可用。 因此,如果没有主动同步数据,并且自上次心跳以来已经过去了一段时间,则连接可能已断开,但此方法仍将返回 返回:
|
removeConnectionChangeListener
removeProgressListener
删除进度侦听器。 如果未注册侦听器,则此方法将不执行任何操作。 参数
|
开始
public synchronized void start () |
---|
尝试启动会话并启用与Realm对象服务器的同步。打开Realm 实例时会自动执行此操作,因此仅当使用stop()停止会话时才需要手动执行此操作。 如果会话已启动,则调用此方法不会执行任何操作。 如果getState()返回State.ACTIVE ,则认为会话已启动。 如果会话处于 State.DYING 状态,则会话将移回State.ACTIVE 状态。 |
请停止
uploadAllLocalChanges
调用此方法将被阻止,直到所有已知的本地更改都已上传到服务器或达到指定的超时时间。 这将涉及网络访问,因此只能从非用户界面线程调用此方法。在打开 Realm 之前不能调用此方法。 返回:
抛出异常
|
public void uploadAllLocalChanges () |
---|
调用此方法将被阻止,直到所有已知的本地更改都已上传到服务器。 这将涉及网络访问,因此只能从非用户界面线程中调用此方法。如果设备处于离线状态,此方法可能永远不会返回。 在打开 Realm 之前无法调用此方法。 抛出异常
|