gpt4 book ai didi

realm - 在主线程上写入 Realm。

转载 作者:行者123 更新时间:2023-12-05 04:10:26 27 4
gpt4 key购买 nike

在主线程上写入 Realm 可以吗?

基本上,我想在开始 ActivityA 之前将一些 ObjectA 写入 Realm。

ActivityA 启动后,它需要立即访问(在 onCreate 中)ObjectA - 我也可以在主线程上读取吗?

基本上这个 ObjectA 太大而无法通过 bundle,所以我需要将它存储在缓存中。

我最初考虑将对象存储在内存缓存中,然后在 Activity 开始后将其存储在 Realm 中,但想知道我是否可以跳过必须编写自己的内存缓存。

最佳答案

Is it ok to write to Realm on the main thread?

在 UI 线程上写入 Realm 有两个含义:

1.) 当事务打开时,异步查询 api 创建的任何 RealmResults 将在 UI 线程上立即同步评估

2.) 如果后台线程已经在事务中写入 Realm,那么它将阻塞 UI 线程,直到该事务被提交。

在您的用例中,您似乎依赖于 Realm 在 UI 线程上为单个对象立即缓存,因此您可以编写(不会被阻塞),并且您立即需要单个对象(因此您需要 findFirst() 是同步 API。

因此在您的情况下,在 UI 线程上使用 Realm 最有可能是安全的。


通常,Realm 的最佳实践是在后台线程上写入 Realm,并在 UI 线程上从 Realm 读取(通过保持对 RealmResults 的字段引用,向其添加 RealmChangeListener,然后在每次更改时接收更新的结果到 Realm )。

关于realm - 在主线程上写入 Realm。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44462767/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com