Android SQLite database is locked
2014-11-06 21:25
344 查看
今天遇到了个Android SQLite database is locked的问题,几番查找原因是因为多线程同时对数据库操作引起的问题,Google了一下,SO上的人都建议使用ContentProvider,要么就是保持数据库操作的同步。我担心同步会影响程序的性能,就没有采用同步的方式,ContentProvider是个较好的选择。但是我又不想再去添加一个ContentProvider,因为多写代码意味着更多的bug,我就想在现有的基础上看能不能找到个解决方案。 在SO上看到有个人给出了为什么ContentProvider能解决这个问题的原因:因为ContentProvider使用的是一个SQLiteOpenHelper意味着就只有一个数据库连接,而SQLiteDatabase 自己会处理好locking的问题。只要不使用2个不同的数据库连接来操作数据库就不会出现这个问题,也就不需要使用ContentProvider,然后我就将封装数据库操作的类写成了一个单例类,这样就只存在一个SQLiteOpenHelper,也就解决了我的问题。多次测试,完美运行,感谢SO。 具体的可以看这儿:
http://stackoverflow.com/a/2697553/1388881 这篇文章页可以参考一下:
http://touchlabblog.tumblr.com/post/24474398246/android-sqlite-locking
http://stackoverflow.com/a/2697553/1388881 这篇文章页可以参考一下:
http://touchlabblog.tumblr.com/post/24474398246/android-sqlite-locking
相关文章推荐
- android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5)
- 解决android: SQLiteDatabaseLockedException: database is locked
- android.database.sqlite.SQLiteDatabaseLockedException: database is locked (code 5): , while compilin
- Android SQLiteDatabaseLockedException: database is locked
- android.database.sqlite.SQLiteException: database is locked
- sqlite遇到database is locked问题的完美解决
- SQLite3::BusyException: database is locked:
- sqlite报SQLITE_LOCKED "Database table is locked"
- 解决SQLite database is locked
- 解决SQLite中的 database is locked
- sqlite遇到database is locked问题的完美解决
- 使用sqlite,在更新操作时每次报错“database is locked”
- sqlite遇到database is locked问题的完美解决
- sqlite:多线程操作数据库“database is locked”解决方法
- 关于SQLite3 Database is Locked 的一点处理技巧
- sqlite遇到database is locked问题的完美解决
- 关于sqlite中的一个错误 “database is locked"
- ios sqlite database is locked
- sqlite遇到database is locked问题的完美解决
- database is locked和SQLITE_BUSY