接口 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()
及其变体强制订阅集与服务器同步。
-
-
嵌套类摘要
嵌套类 修饰符和类型 接口 说明 static class
SubscriptionSet.State
订阅集可能处于的状态。static interface
SubscriptionSet.StateChangeCallback
异步等待服务器处理订阅集时使用的回调。static interface
SubscriptionSet.UpdateAsyncCallback
异步更新订阅集时使用的回调。static interface
SubscriptionSet.UpdateCallback
修改订阅集时使用的接口。
-
方法摘要
所有方法 实例方法 抽象方法 修饰符和类型 方法 说明 Subscription
find(RealmQuery query)
查找包含给定查询的第一个订阅。Subscription
find(String name)
查找具有给定名称的订阅。String
getErrorMessage()
如果getState()
返回SubscriptionSet.State.ERROR
,此方法将返回原因。SubscriptionSet.State
getState()
返回 SubscriptionSet 的当前状态。int
size()
返回此订阅集中当前有多少个订阅。SubscriptionSet
update(SubscriptionSet.UpdateCallback action)
修改订阅集。RealmAsyncTask
updateAsync(SubscriptionSet.UpdateAsyncCallback callback)
异步修改订阅集。boolean
waitForSynchronization()
等待订阅集与服务器同步。boolean
waitForSynchronization(Long timeOut, TimeUnit unit)
等待订阅集与服务器同步。RealmAsyncTask
waitForSynchronizationAsync(SubscriptionSet.StateChangeCallback callback)
异步等待订阅集与服务器同步。RealmAsyncTask
waitForSynchronizationAsync(Long timeOut, TimeUnit unit, SubscriptionSet.StateChangeCallback callback)
异步等待订阅集与服务器同步。-
从接口 java.lang.可迭代
forEach, iterator, spliterator
-
-
-
-
方法详细信息
-
find
@Nullable 订阅查找( RealmQuery查询)
查找包含给定查询的第一个订阅。 多个命名订阅可能包含相同的查询。- 参数:
query
- 要搜索的查询。- 返回:
- 包含查询的第一个订阅,如果未找到匹配项,则为
null
。
-
getState
SubscriptionSet.State getState()
返回 SubscriptionSet 的当前状态。 有关每种状态的更多详细信息,请参阅SubscriptionSet.State
。- 返回:
- 订阅集的当前状态。
-
size
int size()
返回此订阅集中当前有多少个订阅。- 返回:
- 订阅集中的订阅数量。
-
getErrorMessage
@Nullable String getErrorMessage()
- 返回:
- 如果订阅集处于
SubscriptionSet.State.ERROR
状态,则发生底层错误。 对于所有其他状态,将返回null
。
-
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
— 控制异步询问的回调。 此处将报告成功或失败。- 返回:
- 控制异步执行的任务。
-
-