解决Android数据库锁的问题

产生数据库锁的原因,就是因为多个 SQLiteOpenHelper,多数据库操作,导致读写竞争。数据库被锁住

1 对一个数据库操作只创建1个SQLiteOpenHelper。最好保存一个全局的SQLiteOpenHelper,用单例实现。退出进程的时候,再清空单例
2 多进程操作数据库,使用ContentProvider,且声明成android:multiprocess="false"。多进程单实例。否则在2.3等低端机器上,还是可能会出现数据库锁的问题。
3 在单进程的情况下,使用greeddao,不会参数数据库锁的问题。因为只使用了1个 SQLiteOpenHelper。
   当在多进程的情况下,还是会被锁住,还是得使用 ContentProvider。见2.

你可能感兴趣的:(android)