0

我试图从不同的活动访问一个唯一的数据库,但是当我使用数据库时,我必须创建一个不同的数据库实例,因为每个活动都会产生不需要的结果,我如何管理不同活动的唯一数据库?

4

1 回答 1

0

但是,当我使用数据库时,我必须创建一个不同的数据库实例,因为每个活动都会产生不需要的结果,我该如何管理一个独特的数据库,因为不同的活动?

那么你考虑过Singleton吗?我认为您的问题直接指定为使用单例设计模式。使用只有好处(总是只有一个实例,不浪费内存,干净且人类可读的代码等)。

让我们写一些代码:

private static SQLiteOpenHelper instance;

public static SQLiteOpenHelper getInstance(Context c) {
   if (instance == null) {
      instance = new SQLiteOpenHelperImplementation(c);
   }
   return instance;
}

我对单身人士只有很好的经验。

笔记:

为了改进您使用数据库的工作,我有一些建议给您:

  • 如果您有多个表,我建议您创建“操作”类,这些类将包装CRUD每个表的操作和特定方法。

  • 为了提高 db 的性能、安全性和完整性,请始终使用 TRANSACTIONS. 这是非常有用和有效的做法

  • 在并发编程中,始终使用同步块和方法来避免与访问数据库和进行更改相关的问题

  • 总是在工作完成后,释放你的游标并关闭数据库

于 2013-04-03T21:20:02.393 回答