Android 澄清何时打开和关闭数据源
我在这个问题上做了很多研究,我对最佳实践感到困惑 最初我有: A) 在我的主类标题区域中创建了一个数据库对象,然后根据需要将其传递给函数。后来我读到,每次使用前都应该打开和关闭数据库 因此,我: B) 转到使用SQL命令并创建新数据库对象的每个函数(传递上下文),通过SQL创建填充游标,然后在返回之前关闭数据库。然而,我后来读到这样做很昂贵 现在我想: C) 我应该在每个使用数据库对象的子类中创建一个新的数据库对象,并根据需要打开和关闭它 我为noob和看似设计的问题感到抱歉(如果它超出StackOverflow的范围,请删除它),但是,我真的很困惑如何处理它以避免错误,以及Google希望我们如何做 关于建议使用缓存数据库对象的。从Android 澄清何时打开和关闭数据源,android,database,Android,Database,我在这个问题上做了很多研究,我对最佳实践感到困惑 最初我有: A) 在我的主类标题区域中创建了一个数据库对象,然后根据需要将其传递给函数。后来我读到,每次使用前都应该打开和关闭数据库 因此,我: B) 转到使用SQL命令并创建新数据库对象的每个函数(传递上下文),通过SQL创建填充游标,然后在返回之前关闭数据库。然而,我后来读到这样做很昂贵 现在我想: C) 我应该在每个使用数据库对象的子类中创建一个新的数据库对象,并根据需要打开和关闭它 我为noob和看似设计的问题感到抱歉(如果它超出Stac
SQLiteOpenHelper
参考:
一旦成功打开,数据库将被缓存,因此您可以调用
方法,每次需要写入数据库时。(一定要
当不再需要数据库时,调用close()
因此,我选择一个带有SQLiteOpenHelper
实例的单例,这样您就可以从任何地方访问它。然后在需要的地方获取数据库,并在应用程序的退出点(如果有)关闭它。这样,您只能在需要时打开数据库,但也可以在其他任务中重复使用相同的连接
如果您只需要单个任务的数据库和/或其他应用程序访问同一个数据库,则可以考虑在完成数据库任务之后直接关闭它;有一个关于关闭的讨论。
检查它是否有帮助