【问题标题】:How often to run getWritableDatabase() and getReadableDatabase()?多久运行一次 getWritableDatabase() 和 getReadableDatabase()?
【发布时间】:2010-06-17 23:25:16
【问题描述】:

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

鉴于Service每五分钟才插入一次数据库,那么什么时候调用SQLiteOpenHelper的getWritableDatabase()/getReadableDatabase()比较合适呢?是在 Content Provider 的 onCreate() 上,还是应该在每次有 insert() 时运行它并在 insert() 末尾关闭它?每 5 分钟插入一次的数据将包含多次插入。

【问题讨论】:

    标签: android database sqlite


    【解决方案1】:

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

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

    【讨论】:

    • 据我了解,这就是跨应用程序共享数据的方式——我计划编写多个使用相同数据的应用程序。 (我想另一种方法可能是将数据附加到服务并让每个应用程序查询服务,但我不确定每个选项的优缺点是什么。)
    • @jawonlee:啊,抱歉,您没有在问题中提到多应用程序部分。
    猜你喜欢
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 1970-01-01
    • 2018-07-01
    • 2010-09-09
    • 1970-01-01
    相关资源
    最近更新 更多