运行getWritableDatabase()和getReadableDatabase()的频率如何?

时间:2010-06-17 23:25:17

标签: android database sqlite

我正在撰写服务,内容提供商和多个应用。服务每5分钟左右再加上用户输入,将新数据写入Content Provider的SQLite数据库,并且打算在后台运行。该应用程序在运行时将显示从Content Provider中提取的数据,并且只要服务将更多数据放入Content Provider的数据库,该应用程序就会刷新。

鉴于服务仅每五分钟插入一次数据库,何时是调用SQLiteOpenHelper getWritableDatabase() / getReadableDatabase()的正确时间?是在内容提供商的onCreate()上,还是应该在每次有insert()时运行它并在insert()结束时将其关闭?每5分钟插入一次的数据将包含多个插入内容。

1 个答案:

答案 0 :(得分:2)

关于您的具体问题,如果您打算以这种方式使用ContentProvider,您可能希望采用开启 - 关闭 - 每次插入模式。 onDestroy()中没有ContentProvider挂钩,因此没有时间关闭数据库。使用更频繁/随机的访问模式,您只需要忍受它。在你的情况下,你也可以关闭它。

话虽如此,我不清楚为什么你首先要打扰ContentProvider