接口 SubscriptionSet

  • 所有超级接口:
    Iterable<Subscription>
    所有已知子接口:
    MutableSubscriptionSet

    public interface SubscriptionSet
    extends Iterable<Subscription>
    订阅集是已配置为 Flexible Sync 的给定 Realm 的所有当前Subscription的不可变视图。

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

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

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

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

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

    • 方法详细信息

      • find

        @Nullable
        订阅查找( RealmQuery查询)
        查找包含给定查询的第一个订阅。 多个命名订阅可能包含相同的查询。
        参数:
        query - 要搜索的查询。
        返回:
        包含查询的第一个订阅,如果未找到匹配项,则为null
      • find

        @Nullable
        订阅查找​(字符串名称)
        查找具有给定名称的订阅。
        参数:
        name - 要搜索的订阅名称。
        返回:
        匹配的订阅,如果未找到具有该名称的订阅,则为null
      • size

        int size()
        返回此订阅集中当前有多少个订阅。
        返回:
        订阅集中的订阅数量。
      • waitForSynchronization

        boolean waitForSynchronization()
        等待订阅集与服务器同步。 当服务器接受查询集并为其下载数据,或者发生错误时,它将返回。 请注意,您需要手动调用BaseRealm.refresh()或等待变更侦听器trigger才能查看下载的数据。如果发生错误,可以通过getErrorMessage()查找根本原因。
        返回:
        true 如果服务器已接受所有当前订阅并且数据已下载,则如果发生错误,则为false
      • waitForSynchronization

        boolean waitForSynchronization​( Long timeOut, TimeUnitunit )
        等待订阅集与服务器同步。 当服务器接受查询集并为其下载数据,或者发生错误时,它将返回。 请注意,您需要手动调用BaseRealm.refresh()或等待变更侦听器trigger才能查看下载的数据。如果发生错误,可以通过getErrorMessage()查找根本原因。
        参数:
        timeOut - 同步成功或失败的等待时间。
        unit - 用于超时的时间单位。
        返回:
        true 如果服务器已接受所有当前订阅并且数据已下载,则如果发生错误,则为false
        抛出异常:
        RuntimeException - 如果已超过超时时间。
      • waitForSynchronizationAsync

        RealmAsyncTask waitForSynchronizationAsync( SubscriptionSet.StateChangeCallback回调)
        异步等待订阅集与服务器同步。 当服务器接受查询集并为它们下载数据时,或者发生错误时,它将调用回调。 请注意,您需要手动调用BaseRealm.refresh()或等待变更侦听器触发才能查看下载的数据。 如果发生错误,可以通过getErrorMessage()查找根本原因。
        参数:
        callback - 同步成功或失败时trigger的回调。结果将在用户界面线程上报告。
        返回:
        true 如果服务器已接受所有当前订阅并且数据已下载,则如果发生错误,则为false
      • waitForSynchronizationAsync

        RealmAsyncTask waitForSynchronizationAsync​( Long timeOut, TimeUnitunit , SubscriptionSet.StateChangeCallback 回调)
        异步等待订阅集与服务器同步。 当服务器接受查询集并为其下载数据,或者发生错误时,就会调用回调。 请注意,您需要手动调用BaseRealm.refresh()或等待变更侦听器trigger才能查看下载的数据。如果发生错误,可以通过getErrorMessage()查找根本原因。
        参数:
        timeOut - 同步成功或失败的等待时间。
        unit - 用于超时的时间单位。
        callback - 同步成功或失败时trigger的回调。结果将在用户界面线程上报告。
        返回:
        true 如果服务器已接受所有当前订阅并且数据已下载,则如果发生错误,则为false
      • update

        订阅集更新( SubscriptionSet.UpdateCallback操作)
        修改订阅集。 如果在更新过程中引发异常,则不会应用任何更改。 如果更新成功,则该订阅集将更新为已修改状态。
        参数:
        action - 修改订阅集的区块。 它将在调用者线程上运行。
        返回:
        此订阅集现已更新。
        抛出异常:
        Exception - 更新期间引发的任何异常都将传播回来。
      • updateAsync

        RealmAsyncTask updateAsync( SubscriptionSet.UpdateAsyncCallback 回调)
        异步修改订阅集。 如果在更新过程中引发异常,则不会应用任何更改。 *
        参数:
        callback — 控制异步询问的回调。 此处将报告成功或失败。
        返回:
        控制异步执行的任务。