文件名称:sqlite数据库锁定问题.zip
文件大小:850KB
文件格式:ZIP
更新时间:2022-07-30 07:31:50
安卓源码-其他应用
sqlite实质上是将数据写入一个文件,通常情况下,在应用的包名下面都能找到xxx.db的文件,拥有root权限的手机,可以通过adb shell,看到data/data/packagename/databases/xxx.db这样的文件。我们可以得知SQLite是文件级别的锁:多个线程可以同时读,但是同时只能有一个线程写。Android提供了SqliteOpenHelper类,加入Java的锁机制以便调用。如果多线程同时读写(这里的指不同的线程用使用的是不同的Helper实例),后面的就会遇到android.database.sqlite.SQLiteException: database is locked这样的异常。对于这样的问题,解决的办法就是keep single sqlite connection,保持单个SqliteOpenHelper实例,同时对所有数据库操作的方法添加synchronized关键字。完美解决sqlite的 database locked 或者是 error 5: database locked 问题
【文件预览】:
SqlitePractice
----AndroidManifest.xml(794B)
----res()
--------layout()
--------drawable-ldpi()
--------menu()
--------drawable-mdpi()
--------drawable-hdpi()
--------drawable-xhdpi()
--------values()
----src()
--------com()
----proguard-project.txt(781B)
----bin()
--------classes()
--------dexedLibs()
--------AndroidManifest.xml(794B)
--------res()
--------jarlist.cache(120B)
--------classes.dex(399KB)
--------SqlitePractice.apk(158KB)
--------resources.ap_(20KB)
----.classpath(475B)
----assets()
----说明.htm(4KB)
----project.properties(563B)
----ic_launcher-web.png(36KB)
----.settings()
--------org.eclipse.jdt.core.prefs(177B)
----libs()
--------android-support-v4.jar(341KB)
----.project(862B)
----gen()
--------com()