我正在撰写服务,内容提供商和多个应用。服务每5分钟左右再加上用户输入,将新数据写入Content Provider的SQLite数据库,并且打算在后台运行。该应用程序在运行时将显示从Content Provider中提取的数据,并且只要服务将更多数据放入Content Provider的数据库,该应用程序就会刷新。
鉴于服务仅每五分钟插入一次数据库,何时是调用SQLiteOpenHelper getWritableDatabase()
/ getReadableDatabase()
的正确时间?是在内容提供商的onCreate()
上,还是应该在每次有insert()
时运行它并在insert()
结束时将其关闭?每5分钟插入一次的数据将包含多个插入内容。
答案 0 :(得分:2)
关于您的具体问题,如果您打算以这种方式使用ContentProvider
,您可能希望采用开启 - 关闭 - 每次插入模式。 onDestroy()
中没有ContentProvider
挂钩,因此没有时间关闭数据库。使用更频繁/随机的访问模式,您只需要忍受它。在你的情况下,你也可以关闭它。
话虽如此,我不清楚为什么你首先要打扰ContentProvider
。