gpt4 book ai didi

android - 从 Activity 的 onCreate 中的 `launch` block 进行数据库读/写是否安全?

转载 作者:行者123 更新时间:2023-11-29 14:34:33 25 4
gpt4 key购买 nike

当我尝试从协程访问数据库时,我的 android 应用程序在生产中崩溃并出现不同的异常,例如 IllegalStateExceptionSQLiteDiskIOExceptionSQLiteCantOpenDatabaseExceptionlaunch(为此创建了一个新的 CoroutineScope,例如 ioCoroutineContext + SupervisorJob()) block 。

从这样的 launch block 进行数据库访问是否健康?除此之外,由于这是应用程序中对数据库的第一次访问,它将运行数据库迁移(如果有的话)。

最佳答案

对于数据库操作,我认为使用默认或 IO 线程的异步模式更好。

例如,我正在开发一个应用程序,在该应用程序中,我在 recyclerview 绑定(bind) View 持有者中执行 db sqlite 操作,在主线程中使用启动模式作为协程,但是通过这样做,我的回收器 View 滞后了很多,所以我没有使用启动,而是继续使用数据库操作的默认线程中的异步进一步提高了性能。

根据@MarkoTopolnik 的回答,我完全同意他的观点,在您的情况下,处理 sqlite 时可能存在多线程问题,您需要准确了解事情的实际执行方式。

关于android - 从 Activity 的 onCreate 中的 `launch` block 进行数据库读/写是否安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58519410/

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