我是不是应该始终在 android 的单独线程中执行数据库操作?
Posted
技术标签:
【中文标题】我是不是应该始终在 android 的单独线程中执行数据库操作?【英文标题】:Should I always perform database operation in a separate thread in android?我是否应该始终在 android 的单独线程中执行数据库操作? 【发布时间】:2021-11-06 23:54:51 【问题描述】:在 android 中执行 sqlite 数据库操作会降低我的应用程序的速度,但有什么好方法可以消除这种迟缓?我只是在单独的线程上执行数据库操作还是有其他更合适的方式?
【问题讨论】:
“我只是在单独的线程上执行数据库操作”——总是在后台线程上执行磁盘或网络 I/O。例如,Room 默认执行此规则。 【参考方案1】:没错,你应该这样做。如果你使用 Room,它将对你有很大帮助,因为它支持 livedata/flow,你可以从你的片段中观看,它不会在主线程中执行数据库操作。
什么是房间: https://developer.android.com/training/data-storage/room
Google 代码实验室可助您一臂之力: https://developer.android.com/codelabs/android-room-with-a-view-kotlin#0
【讨论】:
感谢 henrique 的回答和资源以上是关于我是不是应该始终在 android 的单独线程中执行数据库操作?的主要内容,如果未能解决你的问题,请参考以下文章