【问题标题】:How to restore from backup file realm database in Android如何从 Android 中的备份文件领域数据库中恢复
【发布时间】:2020-09-02 04:27:49
【问题描述】:

我尝试了很多方法来恢复领域。我从sample code 开始尝试过。但是从备份文件恢复领域数据库不起作用。怎么能有别的办法?

【问题讨论】:

  • 定义“不工作”

标签: android realm-mobile-platform


【解决方案1】:

getExternalStoragePublicDirectory() 自 Android 10 起不再有效,除非您在 AndroidManifest 中使用特殊标志。而且它在 Android 11 中根本不起作用。

您需要重构备份/恢复过程以使用 Scoped Storage 和存储访问框架。我做的这个教程是针对SQLite的,不过应该和Realm数据库基本一样:

https://medium.com/@gavingt/refactoring-my-backup-and-restore-feature-to-comply-with-scoped-storage-e2b6c792c3b

您可能还希望在onOpen() 中禁用预写日志记录。这就是它在 SQLite 中的样子:

    @Override
public void onOpen(SQLiteDatabase db) {
    super.onOpen(db);
    //disable write-ahead logging to make backup/restore work on all devices.
    db.disableWriteAheadLogging();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-04-25
    • 2011-07-14
    • 2012-02-20
    • 2017-03-09
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    相关资源
    最近更新 更多