解决Android数据库锁的问题
16lz
2021-01-26
产生数据库锁的原因,就是因为多个 SQLiteOpenHelper,多数据库操作,导致读写竞争。数据库被锁住
1 对一个数据库操作只创建1个SQLiteOpenHelper。最好保存一个全局的SQLiteOpenHelper,用单例实现。退出进程的时候,再清空单例 2 多进程操作数据库,使用ContentProvider,且声明成android:multiprocess="false"。多进程单实例。否则在2.3等低端机器上,还是可能会出现数据库锁的问题。 3 在单进程的情况下,使用greeddao,不会参数数据库锁的问题。因为只使用了1个 SQLiteOpenHelper。 当在多进程的情况下,还是会被锁住,还是得使用 ContentProvider。见2.
1 对一个数据库操作只创建1个SQLiteOpenHelper。最好保存一个全局的SQLiteOpenHelper,用单例实现。退出进程的时候,再清空单例 2 多进程操作数据库,使用ContentProvider,且声明成android:multiprocess="false"。多进程单实例。否则在2.3等低端机器上,还是可能会出现数据库锁的问题。 3 在单进程的情况下,使用greeddao,不会参数数据库锁的问题。因为只使用了1个 SQLiteOpenHelper。 当在多进程的情况下,还是会被锁住,还是得使用 ContentProvider。见2.
更多相关文章
- SpringBoot 2.0 中 HikariCP 数据库连接池原理解析
- Android进程间通信(二):通过AIDL介绍Binder的工作机制
- Android(安卓)SQLite3命令详解
- GreenDao讲解与使用
- Android应用程序四大组件之使用AIDL如何实现跨进程调用Service
- Android(安卓)Application 理解
- javac错误:javac不是内部或外部命令 也不是可运行的程序 解决方法
- Android《第五章:ContentProvider》
- 实现仿windows正在加载loading动画