已经有关于这一主题的几个问题,但是没有给出为什么会出现应该或不应该是databaseHelper单个或多个实例公司的原因。 当它是一个好主意,有DatabaseHelper的多个实例,当又何尝不是。 较少的复杂性(如果这是真正的情况)足够好的理由,只是一个单一的实例?
Answer 1:
你DatabaseHelper
应该是肯定的独生子。 每个辅助维持到数据库的单个连接。 如果你有相同的数据库连接多个帮手,那么并发问题将导致。 SQLite的确实是自己的锁定下方的一个连接,以确保在正确的数据库的并发访问,以便使用您的所有数据库操作的单一连接(因此是单一的助手)的建议和要求。
Answer 2:
使用一个DatabaseHelper应用程序中的每个数据库。 SQLite的负责文件锁定你(多读,只有一个写入)和Android使用Java在SQLiteDatabase锁定。 但是,你仍然可以得到具有并发心力衰竭(simulataneous连接写一次)。 这是要避免多connnections一部分,这就是由DatabaseHelper的一个实例管理。
文章来源: DataBaseHelper, Singleton or not?