- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在主线程上写入 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/
有人可以向我澄清主线 DHT 规范中的声明吗? Upon inserting the first node into its routing table and when starting up th
我正在尝试使用 USB 小工具驱动程序使嵌入式设备作为 MTP 设备工作。 我知道 Android 从大容量存储设备切换到 MTP 设备已经有一段时间了,并且找到了 source code for M
我是一名优秀的程序员,十分优秀!