2013-09-16 28 views
0

我在这个主题上做了很多Googlig,我对最佳实践感到困惑。澄清何时打开和关闭数据源

起初我:

A)在我的主类的头区创建的数据库对象,然后根据需要它只是传递给函数。然后,我后来读到应该在使用之前每次打开和关闭数据库。

所以然后I:

B)去其使用SQL命令的每个功能(通过语境)和创建了一个新的数据库对象,通过SQL创建填充的光标,然后在返回之前关闭数据库。不过,我后来认为这样做很昂贵。

现在我在想:

C)我应该创建一个使用一个,和开放的每个子类一个新的数据库对象,并根据需要将其关闭。

对于Noob和看似设计的问题(如果它超出了StackOverflow的范围,请将其删除),但是,我真的很困惑应该如何处理这个问题以避免错误,以及Google希望我们怎么做。

问候

+0

检查它可能有助于http://androidituts.com/android-sqlite-database-tutorial/ –

回答

1

Android docs建议使用SQLiteOpenHelper,其缓存数据库对象。从SQLiteOpenHelper参考:

一旦成功打开,数据库缓存,所以您可以在每次需要写入到数据库时调用此方法 。 (请务必 通话close()当你不再需要的数据库。)

所以,我会去为用于运载SQLiteOpenHelper实例的单,这样你就可以从任何地方访问它。然后在需要的地方获取数据库,并在应用程序的出口点关闭它(如果有的话)。这样您只需要打开一个数据库,但也可以重复使用相同的连接来完成其他任务。

如果您只需要单个任务的数据库和/或其他应用程序正在访问同一个数据库,则可以考虑在数据库任务完成后直接关闭它;有关于关闭in another question的讨论。