SQLite数据库本身不具有线程安全性
Android SQLiteDatabase提供了线程安全的保证,里面添加了同步逻辑。
http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#setLockingEnabled%28boolean%29
http://stackoverflow.com/questions/6675240/is-sqlite-database-instance-thread-safe

我们操作数据库一般使用ContentProvider,SQLiteOpenHelper,应用中使用SQLiteDatabase db = SQLiteOpenHelper.getReadableDatabase(),这个db需要调用db.close()或者openHelper.close()方法吗?

不需要。

为什么?
http://stackoverflow.com/questions/4547461/closing-the-database-in-a-contentprovider?lq=1
ContentProvider随它的宿主进程创建,与该进程有相同的生命周期,所以不需要手动去关闭,在内核清理进程资源的时候会将它一起清理,也就是这时候关闭的。

A content provider is created when its hosting process is created, and remains around for as long as the process does, so there is no need to close the database – it will get closed as part of the kernel cleaning up the process’s resources when the process is killed.

更多相关文章

  1. Android学习笔记之mainfest文件中android属性
  2. Android进度条、自动提示框、下拉框动态数据加载
  3. Android(安卓)关键字 收集
  4. Android(安卓)进程和线程
  5. 如何使Android应用程序获取系统权限
  6. android下的android.os.StrictMode$AndroidBlockGuardPolicy.onN
  7. Best Practice For Android
  8. Android(安卓)System Server
  9. Android存储系统之源码篇

随机推荐

  1. Kubernetes 稳定性保障手册 -- 可观测性
  2. 《我与Windows Server 2008R2那点事儿》
  3. Istio Proxy【Envoy扩展】详解
  4. MySql引擎原理以及优化
  5. js的解构
  6. VARCHART XGantt甘特图如何Drag & Drop
  7. 说说心里话
  8. 后来,我去了拼多多,做了数据分析师。
  9. 图解数据分析
  10. SSDB:可用于替代Redis的高性能NoSQL数据库