【问题标题】:android realm : Restoring realm DB from backup fileandroid realm : 从备份文件恢复领域数据库
【发布时间】:2016-07-14 04:53:49
【问题描述】:

我正在开发一个带有领域的笔记应用程序。我想添加备份和恢复功能。所以我一直在实现this page 中介绍的这些功能。这是用户场景。

  1. 当用户单击备份按钮时,将 default.realm 备份到 temp.realm
  2. 用户点击恢复按钮,将 default.reaml 替换为 temp.realm。
  3. 重新加载数据并使用新数据显示(替换 default.realm 文件)。

如果我重新启动我的应用程序,它会很好地工作。但我想立即刷新新数据。如果我没有重新启动我的应用程序,它会很奇怪。所以我的问题是如何重新加载恢复的领域数据库,以便在不重新启动应用程序的情况下显示恢复的数据。

【问题讨论】:

    标签: android realm


    【解决方案1】:

    非常重要的是,在将temp.realm 复制到default.realm 之前,所有引用旧default.realm 的打开的Realm 实例都需要关闭。由于这些实例仍然持有一个文件描述符,并且复制后新打开的 Realm 实例将持有不同的文件描述符,并且 Realm 仍然认为它们是相同的 Realm,因为路径完全相同。这是Realm无法处理的情况,可能会发生一些奇怪的事情。

    您可以先拨打Realm.deleteRealm()删除旧的default.realm。如果要删除的领域文件有任何其他领域实例打开,该 API 将抛出。

    【讨论】:

    • 我解决了这个问题。你的回答真的很有帮助。我找到了打开领域实例并关闭它们的每个代码。之后,它运行良好。谢谢~!!! :)
    • lee jeongmin ,您能告诉我如何在 Android 中配置恢复领域数据库吗?我在从 Android 领域数据库中的备份文件中恢复数据库时遇到了大问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-20
    • 1970-01-01
    相关资源
    最近更新 更多