android - 从单独的进程(例如同步)访问 GreenDao
问题描述
在各种情况下,我都会收到这样的日志错误
my.app:sync E/SQLiteLog: (5) statement aborts at 1: [PRAGMA journal_mode=TRUNCATE] database is locked
在调查这个问题时,我意识到我的应用程序(App.java)有时会被初始化多次。我的应用程序需要对数据库执行后台操作,为此会AndroidManifest.xml
产生一个服务,该服务设置为android:process=":sync"
.
如果服务注定要在单独的进程中运行,它将接收自己的 App 实例(请参阅https://stackoverflow.com/a/28498115/2416394)现在有时应用程序是从主线程产生的,有时另外从同步进程访问同一文件导致上述锁定问题。
有人知道如何在这种情况下实际访问 GreenDao 吗?其他人也有这个问题,但到目前为止我发现的所有东西都非常旧,唯一可能的东西似乎是“ContentProvider”,但没有关于如何实际使用 GreenDao 3 和内容提供程序的文档。
解决方案
推荐阅读
- linux - 从 /dev/usb/lp0 linux 读取数据
- java - Kotlin: Argument Type Mismatch when passing Array as vararg parameter
- javascript - 如何使用 ReactJS 运行一个包含一个部分的登录页面?
- angular - 无法导航到角度 6 中的延迟加载路线
- android - 颜色名称为十六进制
- python - Django: ImproperlyConfigured 执行 gunicorn 时 SECRET_KEY 设置不能为空
- arrays - Julia 闭包中的数组分配
- azure - Web 应用程序使用 OAuth 2.0 授权流对连接到 Azure AD 的 ADFS 进行身份验证
- javascript - 数据属性值未在 jquery var 中传递
- css - 一些响应式问题 Css