我有一个(希望)快速的问题,关于在Android中处理SQLite数据库连接。我有一个自然地由几个活动组成的应用程序。我创建/更新/查询数据库没有问题,因为我已经创建了一个专用的类来通过SQLiteOpenHelper来处理这项工作。
我的问题是:由于这些活动都共享同一个数据库,这通常是作为单个静态成员实现的,还是每个活动都拥有自己的连接?我当然关心的是每次活动中重新连接数据库的成本。
或者换句话说,有没有理由不存储单例实例?
我也想知道幕后是否会发生类似于.NET连接池的事情,以降低打开连接的成本。
提前致谢!
答案 0 :(得分:13)
SQLite中的连接开放大约是0.2ms。
最佳做法告诉我们每次需要时都要打开和关闭连接。
答案 1 :(得分:9)
只需使用SQLiteOpenHelper.getReadableDatabase()和SQLiteOpenHelper.getWriteableDatabase() - Android就会管理和缓存连接,因此您无需使用。
事实上,请参阅官方Google Using Databases文档:
写入和读取 数据库,调用getWritableDatabase() 和getReadableDatabase(), 分别。这两个都返回了 SQLiteDatabase