Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 运行getWritableDatabase()和getReadableDatabase()的频率如何?_Android_Database_Sqlite - Fatal编程技术网

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

Android 运行getWritableDatabase()和getReadableDatabase()的频率如何?,android,database,sqlite,Android,Database,Sqlite,我正在编写一个服务、一个内容提供商和多个应用程序。该服务在用户输入时每隔5分钟左右将新数据写入内容提供商的SQLite数据库,并打算永远在后台运行。该应用程序在运行时将显示从内容提供商提取的数据,并在服务将更多数据放入内容提供商的数据库时刷新 假设服务每五分钟只向数据库中插入一次,那么何时是调用SQLiteOpenHelper的getWritableDatabase()/getReadableDatabase()?它是在内容提供商的onCreate()上,还是每次有insert()时都运行它并在

我正在编写一个服务、一个内容提供商和多个应用程序。该服务在用户输入时每隔5分钟左右将新数据写入内容提供商的SQLite数据库,并打算永远在后台运行。该应用程序在运行时将显示从内容提供商提取的数据,并在服务将更多数据放入内容提供商的数据库时刷新


假设服务每五分钟只向数据库中插入一次,那么何时是调用SQLiteOpenHelper的
getWritableDatabase()
/
getReadableDatabase()
?它是在内容提供商的
onCreate()
上,还是每次有
insert()
时都运行它并在
insert()的末尾关闭它?每5分钟插入一次的数据将包含多个插入。

关于您的特定问题,如果您打算以这种方式使用
ContentProvider
,您可能希望打开并关闭每个插入模式。
ContentProvider
中没有
onDestroy()
钩子,因此没有时间关闭数据库。对于更频繁/随机的访问模式,您只需接受它。对你来说,你最好把它关起来


话虽如此,我不清楚你为什么要麻烦一个
内容提供商

据我所知,这是你如何跨应用程序共享数据的问题——我计划编写多个使用相同数据的应用程序。(我想另一种方法是将数据附加到服务,让每个应用程序查询服务,但我不确定每个选项的优缺点。)@jawonlee:啊,对不起,你在问题中没有提到多个应用程序部分。