多久运行一次getWritableDatabase()和getReadableDatabase()?

3
我正在编写一个服务、内容提供者以及多个应用程序。该服务每隔5分钟或用户输入一次向内容提供者的SQLite数据库中写入新数据,并旨在长期在后台运行。当应用程序运行时,它将显示从内容提供者中提取的数据,并且每当服务向内容提供者的数据库中添加更多数据时,应用程序将被刷新。
考虑到服务每五分钟只插入一次数据库,那么什么时候调用SQLiteOpenHelper的getWritableDatabase() / getReadableDatabase()是正确的呢?是在内容提供者的onCreate()上还是应该在每次insert()时运行并在insert()结束时关闭它?每五分钟插入的数据将包含多个插入操作。
1个回答

2
关于您的具体问题,如果您要以这种方式使用ContentProvider,您可能希望采用打开和关闭每个插入模式。在ContentProvider中没有onDestroy()钩子,因此没有很好的时间来关闭数据库。对于更频繁/随机的访问模式,您只能接受它。在您的情况下,您可以将其关闭。
话虽如此,我不清楚您为什么首先要使用ContentProvider

据我理解,这是一种在应用程序之间共享数据的方式 - 我计划编写多个使用相同数据的应用程序。(我想另一种方法可能是将数据附加到服务上,并让每个应用程序查询该服务,但我不确定每个选项的优缺点是什么。) - jbreed
@jawonlee:啊,抱歉,你在问题中没有提到多应用程序部分。 - CommonsWare

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接