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

接口 SubscriptionSet

在此页面上

  • io.realm.mongodb.sync
  • 嵌套类摘要
  • 方法摘要
  • 继承方法
  • 方法详细信息
  • find
  • getErrorMessage
  • getState
  • size
  • update
  • updateAsync
  • waitForSynchronization
  • waitForSynchronizationAsync

实现的接口:

  • java.lang.Iterable

订阅设立是已配置为 Flexible 同步的给定Realm的所有当前Subscription的不可变视图。

Flexible Sync 是一种使用RealmQuery定义与设备同步哪些数据或从设备同步哪些数据的方法。 查询及其元数据由订阅表示。

因此,订阅集定义了设备可用并与服务器同步的所有数据。 如果订阅集遇到错误,例如包含无效查询,则整个订阅集将进入SubscriptionSet.State.ERROR状态,并且在修复错误之前不会进行同步。

如果订阅被删除,相应的数据也会被删除,但只是从设备中删除。 它不会在服务器上删除。

可以在离线状态下修改订阅设立,但在getState()返回SubscriptionSet.State.COMPLETE之前,服务器不会接受修改。

可以使用waitForSynchronization()及其变体强制订阅设立与服务器同步。

修饰符和类型
类和描述
public static final
public static interface
public static interface
public static interface
修饰符和类型
方法和说明
公开订阅
String name
)

查找具有给定名称的订阅。

公开订阅

查找包含给定查询的第一个订阅。

公共string

如果getState()返回State.ERROR ,此方法将返回原因。

返回 SubscriptionSet 的当前状态。

公共整型
size ()

返回此订阅集中当前有多少个订阅。

修改订阅集。

异步修改订阅集。

公共布尔值

等待订阅集与服务器同步。

公共布尔值

等待订阅集与服务器同步。

异步等待订阅集与服务器同步。

异步等待订阅集与服务器同步。

String name
)

查找具有给定名称的订阅。

参数

  • name - 要搜索的订阅名称。

返回:

匹配的订阅,如果未找到具有该名称的订阅,则为null

查找包含给定查询的第一个订阅。 多个命名订阅可能包含相同的查询。

参数

  • query - 要搜索的查询。

返回:

包含查询的第一个订阅,如果未找到匹配项,则为null

如果getState()返回State.ERROR ,此方法将返回原因。 可以通过相应地修改订阅,然后调用waitForSynchronization()来修复错误。

返回:

如果订阅设立处于State.ERROR状态,则为根本的错误。 对于所有其他状态,将返回null

返回 SubscriptionSet 的当前状态。 有关每种状态的更多详细信息,请参阅SubscriptionSet.State

返回:

订阅集的当前状态。

public int size ()

返回此订阅集中当前有多少个订阅。

返回:

订阅集中的订阅数量。

修改订阅集。 如果在更新过程中引发异常,则不会应用任何更改。 如果更新成功,则该订阅集将更新为已修改状态。

参数

  • action - 修改订阅集的区块。 它将在调用者线程上运行。

返回:

此订阅集现已更新。

抛出异常

  • 异常 -更新期间引发的任何异常都将传播回来。

异步修改订阅集。 如果在更新过程中引发异常,则不会应用任何更改。 *

参数

  • callback — 控制异步询问的回调。 此处将报告成功或失败。

返回:

控制异步执行的任务。

public boolean waitForSynchronization (
Long timeOut,
)

等待订阅设立与服务器同步。 当服务器接受查询设立并为其下载数据,或者发生错误时,它将返回。 请注意,您需要手动调用Realm.refresh()或等待变更侦听器trigger才能查看下载的数据。 如果发生错误,可以通过getErrorMessage()找到根本的原因。

参数

  • timeOut - 同步成功或失败的等待时间。

  • unit - 用于超时的时间单位。

返回:

true 如果服务器已接受所有当前订阅并且数据已下载,则如果发生错误,则为false

抛出异常

public boolean waitForSynchronization ()

等待订阅设立与服务器同步。 当服务器接受查询设立并为其下载数据,或者发生错误时,它将返回。 请注意,您需要手动调用Realm.refresh()或等待变更侦听器trigger才能查看下载的数据。 如果发生错误,可以通过getErrorMessage()找到根本的原因。

返回:

true 如果服务器已接受所有当前订阅并且数据已下载,则如果发生错误,则为false

异步等待订阅集与服务器同步。 当服务器接受查询集并为其下载数据,或者发生错误时,就会调用回调。 请注意,您需要手动调用Realm.refresh()或等待变更侦听器trigger才能查看下载的数据。 如果发生错误,可以通过getErrorMessage()找到根本原因。

参数

  • timeOut - 同步成功或失败的等待时间。

  • unit - 用于超时的时间单位。

  • callback - 同步成功或失败时trigger的回调。结果将在用户界面线程上报告。

返回:

true 如果服务器已接受所有当前订阅并且数据已下载,则如果发生错误,则为false

异步等待订阅集与服务器同步。 当服务器接受查询集并为它们下载数据时,或者发生错误时,它将调用回调。 请注意,您需要手动调用Realm.refresh()或等待变更侦听器trigger才能查看下载的数据。 如果发生错误,可以通过getErrorMessage()找到根本原因。

参数

  • callback - 同步成功或失败时trigger的回调。结果将在用户界面线程上报告。

返回:

true 如果服务器已接受所有当前订阅并且数据已下载,则如果发生错误,则为false

后退

订阅