在Android中管理SQLite连接

时间:2011-03-01 14:54:11

标签: android sqlite architecture

我有一个(希望)快速的问题,关于在Android中处理SQLite数据库连接。我有一个自然地由几个活动组成的应用程序。我创建/更新/查询数据库没有问题,因为我已经创建了一个专用的类来通过SQLiteOpenHelper来处理这项工作。

我的问题是:由于这些活动都共享同一个数据库,这通常是作为单个静态成员实现的,还是每个活动都拥有自己的连接?我当然关心的是每次活动中重新连接数据库的成本。

或者换句话说,有没有理由不存储单例实例?

我也想知道幕后是否会发生类似于.NET连接池的事情,以降低打开连接的成本。

提前致谢!

2 个答案:

答案 0 :(得分:13)

SQLite中的连接开放大约是0.2ms。

最佳做法告诉我们每次需要时都要打开和关闭连接。

答案 1 :(得分:9)

只需使用SQLiteOpenHelper.getReadableDatabase()SQLiteOpenHelper.getWriteableDatabase() - Android就会管理和缓存连接,因此您无需使用。

事实上,请参阅官方Google Using Databases文档:

  

写入和读取   数据库,调用getWritableDatabase()   和getReadableDatabase(),   分别。这两个都返回了   SQLiteDatabase