【问题标题】:Is Android Room open close practice a bad practice?Android Room打开关闭练习是一种不好的做法吗?
【发布时间】:2018-05-28 20:47:01
【问题描述】:

首先这是我第二次使用 Room for Android =D

我意识到,如果您遵循“打开(数据库访问)关闭”的做法,而不是仅仅打开并通过所有应用程序保持同一个实例打开,那么 Android Room jetpack 的工作会更加稳定/强大。

我知道 Android Room 的指导方针正好相反:

在实例化 AppDatabase 对象时,您应该遵循单例设计模式,因为每个 RoomDatabase 实例都相当昂贵,而且您很少需要访问多个实例。

这一段是否说您需要尽可能地保持与数据库的连接?或者您需要在“数据库”对象的内存中保留相同的引用,并且您实际上可以打开关闭连接,同时保持对同一对象的相同引用?

如果我尝试将“.db”文件复制到任何 SQLite 查看器中,如果我没有正确关闭连接,它可能不会将我的信息存储到表中,而如果我在插入数据后关闭所有内容工作正常。

我有点困惑什么是最好的方法。

【问题讨论】:

  • "这一段是否说您需要尽可能地保持与数据库的连接?" - 是的。 “如果我尝试复制“.db”文件”——这就是你困难的根源。使用其他解决方案(例如 Stetho)来检查您的数据库,而无需制作副本。
  • 谢谢!开始使用 Stetho 并且是调试应用程序的好方法。

标签: android android-sqlite android-room


【解决方案1】:

根据这个问题

Android SQLite closed exception

Best place to close database connection

您无需关闭房间数据库。开场贵不参考。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-04
    • 2017-05-19
    • 1970-01-01
    • 2013-12-31
    • 2013-03-30
    • 2017-05-08
    • 2019-05-01
    • 1970-01-01
    相关资源
    最近更新 更多