已经有一些关于这个主题的问题,但没有一个给出确切的理由来说明为什么应该或不应该有单个或多个databaseHelper实例。什么时候拥有多个DatabaseHelper实例是个好主意,什么时候不是。复杂度更低(如果确实是这样的话)是不是有足够的理由只有一个实例?
发布于 2012-07-20 00:08:41
您的DatabaseHelper肯定应该是单例的。每个帮助器都维护与数据库的单一连接。如果您有多个helper连接到同一个数据库,则会导致并发问题。Sqlite在单个连接下进行自己的锁定,以确保对数据库的正确并发访问,因此建议并要求对所有数据库操作使用该单个连接(因此使用该单个助手)。
发布于 2012-07-20 00:30:07
对应用程序中的每个数据库使用一个DatabaseHelper。SQLite会为你处理文件锁定(多次读取,只有一次写入),而安卓在SQLiteDatabase中使用Java锁定。然而,你仍然会遇到并发失败(同时连接一次写入)。这是您想要避免的多重连接部分,也就是由DatabaseHelper的一个实例管理的部分。
https://stackoverflow.com/questions/11564348
复制相似问题