RealmResults 类
在此页面上
io.realm
此类保存给定 Realm 的RealmQuery的所有匹配项。 这些对象不会从 Realm 复制到 RealmResults 列表,而只是从 RealmResult 引用。 这样可以节省内存并提高速度。
RealmResults 是实时视图,这意味着如果它位于Looper线程上,它将在提交事务后自动更新其查询结果。如果在非事件循环线程上,则必须调用Realm.refresh()来更新结果。
从 RealmResults 列表对 RealmObjects 的更新必须在事务中完成,并且修改的对象在提交事务期间将持久保存到 Realm 文件中。
RealmResults 对象不能在不同线程之间传递。
请注意,RealmResults 永远不会 null
,即使在它不包含对象的情况下也是如此。 应始终使用RealmResults.size() 方法来检查 RealmResults 是否为空。
如果通过RealmList.where()在 RealmList 上构建 RealmResults ,当源 RealmList 被删除时,它将变为空。
RealmResults包含的元素数量可以多于Integer.MAX_VALUE
。 在这种情况下,您只能访问其中的前Integer.MAX_VALUE
元素。
方法摘要
修饰符和类型 | 方法和说明 |
---|---|
public void | |
public void | 向此RealmResults添加变更侦听器。 |
public <any> | 返回一个 Rx Observable,用于监控此 RealmResults 的更改。 |
public <any> | asFlowable () 返回一个监控此 RealmResults 变更的 Rx Flowable。 |
公共string | asJSON () 返回RealmQuery匹配项的 JSON 表示形式。 |
freeze () | |
公共布尔值 | isFrozen () |
公共布尔值 | isLoaded () 如果尚未加载结果,则返回 |
公共布尔值 | load () 使异步查询阻塞。 |
public void | 删除所有用户定义的变更侦听器。 |
public void | ) 删除指定的变更侦听器。 |
public void | 删除指定的变更侦听器。 |
public void | |
public void | 设置collection内所有对象中给定字段的 |
public void | |
public void | |
public void | 设置collection内所有对象中给定字段的 |
public void | |
public void | |
public void | |
public void | 替换此collection中所有对象上给定字段的 RealmList。 |
public void | |
public void | |
public void | 在collection所有对象中的给定字段上设置对另一个对象的引用。 |
public void | 设置collection内所有对象中给定字段的 |
public void | |
public void | |
public void | |
public void | |
where () 返回一个RealmQuery ,可用于从此collection中查询特定objects。 |
继承方法
从类 java.lang.Object 继承的方法 :
getClass
、hashCode
、equals
、clone
、toString
、notify
、notifyAll
、wait
、wait
、wait
、finalize
从类 java.util.AbstractCollection 继承的方法 :
iterator
、size
、isEmpty
、contains
、toArray
、toArray
、add
、remove
、containsAll
、addAll
、removeAll
、retainAll
、clear
,toString
从类 java.util.AbstractList 继承的方法 :
add
、get
、set
、add
、remove
、indexOf
、lastIndexOf
、clear
、addAll
、iterator
、listIterator
、listIterator
、subList
、equals
、hashCode
、removeRange
从类io.realm.OrderedRealmCollectionImpl继承的方法:
isValid
、isManaged
、contains
、get
、first
、first
、last
、last
、deleteFromRealm
、deleteAllFromRealm
、iterator
、listIterator
、listIterator
、sort
、sort
、sort
、sort
、size
、min
、minDate
、max
、maxDate
、sum
、average
、remove
、remove
、removeAll
、set
、retainAll
、deleteLastFromRealm
、deleteFirstFromRealm
、clear
、add
、add
、addAll
、addAll
、createSnapshot
、getRealm
、getCollectionOperator
方法详细信息
addChangeListener
public void addChangeListener ( ) | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
向此RealmResults添加变更侦听器。 注册变更侦听器不会阻止底层 RealmResults 被垃圾收集。 如果对 RealmResults 进行垃圾回收,则将停止触发变更侦听器。 为避免这种情况,请尽可能长时间地保留强引用,例如在类变量中。
参数
抛出异常
|
向此RealmResults添加变更侦听器。 注册变更侦听器不会阻止底层 RealmResults 被垃圾收集。 如果对 RealmResults 进行垃圾回收,则将停止触发变更侦听器。 为避免这种情况,请尽可能长时间地保留强引用,例如在类变量中。
参数
抛出异常
|
asChangesetObservable
public <any> asChangesetObservable () | |||||
---|---|---|---|---|---|
返回一个 Rx Observable,用于监控此 RealmResults 的更改。 订阅时,它将发出当前的 RealmResults。 每次更新 RealmResult 时,都会发送由 RealmResults 和OrderedCollectionChangeSet组成的对。 首次发出 RealmResults 时,变更集将为 RealmResults 将在 RealmResults 更新时不断发出 - 从 Realm Observables 发出的项目被冻结(请参阅冻结() 。 这意味着它们是不可变的,可以在任何线程上读取。 Realm Observables 始终从持有活动 Realm 的线程中发出项目。 这意味着,如果需要进行进一步处理,建议观察计算调度器上的值:
返回: 仅调用 抛出异常
|
asFlowable
public <any> asFlowable () | |||||||||
---|---|---|---|---|---|---|---|---|---|
返回一个监控此 RealmResults 变更的 Rx Flowable。 订阅时,它将发出当前的 RealmResults。 RealmResults 将在 RealmResults 更新时不断发出 - 从 Realm Flowables 发出的项被冻结(请参阅冻结() 。 这意味着它们是不可变的,可以在任何线程上读取。 Realm Flowables 始终从保存活动 RealmResults 的线程中发出数据项。 这意味着,如果需要进行进一步处理,建议观察计算调度器上的值:
如果希望
返回: 仅调用 抛出异常
|
asJSON
返回RealmQuery匹配项的 JSON 表示形式。 周期将作为行索引返回。 这是一个用于检查数据或调试目的的辅助方法,该方法可能会拉取一个大字符串,从而导致 OutOfMemory 错误。 返回: JSON 数组的字符串表示形式,其中包含生成的RealmQuery条目。 |
冻结
public RealmResults freeze () |
---|
IsFrozen
public boolean isFrozen () |
---|
isLoaded
public boolean isLoaded () |
---|
如果尚未加载结果,则返回 返回:
|
负载
public boolean load () |
---|
删除所有变更监听器
public void removeAllChangeListeners () |
---|
removeChangeListener
public void removeChangeListener ( ) |
---|
删除指定的变更侦听器。 参数
抛出异常
|
删除指定的变更侦听器。 参数
抛出异常
|
setBlob
设置collection中所有对象的给定字段的二进制值。 参数
抛出异常
|
setBoolean
设置collection内所有对象中给定字段的 参数
抛出异常
|
setByte
设置collection内所有对象中给定字段的 参数
抛出异常
|
setDate
设置collection内所有对象中给定字段的 参数
抛出异常
|
setDecimal128
设置collection内所有对象中给定字段的 参数
抛出异常
|
setDouble
设置collection内所有对象中给定字段的 参数
抛出异常
|
setFloat
设置collection内所有对象中给定字段的 参数
抛出异常
|
setInt
设置collection内所有对象中给定字段的 参数
抛出异常
|
setList
替换此collection中所有对象上给定字段的 RealmList。 参数
抛出异常
|
setLong
设置collection内所有对象中给定字段的 参数
抛出异常
|
setNull
将collection中所有对象的给定字段的值设置为 参数
抛出异常
|
setObject
在collection所有对象中的给定字段上设置对另一个对象的引用。 参数
抛出异常
|
setObjectId
设置collection内所有对象中给定字段的 参数
抛出异常
|
setShort
设置collection内所有对象中给定字段的 参数
抛出异常
|
setString
设置collection内所有对象中给定字段的 参数
抛出异常
|
setUUID
设置collection内所有对象中给定字段的 参数
抛出异常
|
setValue
更新查询结果内所有对象中由 此方法会自动尝试将 使用setInt( string , int)等类型化 setter 比使用此方法更快。 参数
抛出异常
|
sort
根据提供的字段和排序顺序对collection进行排序。 返回: 将创建并返回新的排序RealmResults 。 原始集合保持不变。 覆盖
|
WHERE
public RealmQuery where () |
---|