Android例子源码解决多线程读写sqlite数据库锁定问题

时间:2022-08-18 03:48:55
【文件属性】:
文件名称:Android例子源码解决多线程读写sqlite数据库锁定问题
文件大小:836KB
文件格式:RAR
更新时间:2022-08-18 03:48:55
例子源码 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 问题
【文件预览】:
Android例子源码解决多线程读写sqlite数据库锁定问题
----SqlitePractice()
--------AndroidManifest.xml(794B)
--------res()
--------src()
--------proguard-project.txt(781B)
--------bin()
--------.classpath(475B)
--------assets()
--------project.properties(563B)
--------ic_launcher-web.png(36KB)
--------.settings()
--------libs()
--------.project(862B)
--------gen()
----目录列表.txt(2KB)
----JavaApk源码说明.txt(2KB)

网友评论