gpt4 book ai didi

android - 是否可以从 Realm 迁移到 Sqlite?

转载 作者:搜寻专家 更新时间:2023-11-01 07:45:59 26 4
gpt4 key购买 nike

出于某些原因(主要是 apk 较大,即使 ABI 拆分也是如此)我需要完全删除 Realm 并在不丢失数据的情况下使用 Sqlite。

我找不到方法。看来应用程序必须继续使用 Realm,否则用户将完全丢失数据。

任何想法将不胜感激

最佳答案

我不认为我完全理解你的问题是什么。如果您问是否有可以为您自动执行数据迁移的工具,那么没有,没有这样的工具。

否则就很简单了:

  1. SQLiteOpenHelper 类的实现中处理 onCreateonDowngradeonUpgrade 方法。

  2. 在您的 onCreate 方法中,在您创建表之后,立即从 Realm 获取所有数据并插入到 SQLite 表中。

    <

像这样:

Realm realm = Realm.getDefaultInstance();
RealmResults<MyClass> all = realm.where(MyClass.class)
.findAll();
for (MyClass instance : all) {
doInsert(instance);
}

我实际上建议您查看how to reduce APK size在使用 Realm 时,但这取决于你

编辑 1您必须确保先迁移数据,然后再删除 Realm 文件。尽管使您的 APK 变大的不是数据文件,而是 Realm 附带的实际库。因此,不幸的是,为此你必须采取两个步骤:首先发布将数据迁移到 SQLite 的更新,然后在一些合理的时间(比如一周)后你可以发布更新,将 Realm 库完全移除。希望它有意义。

关于android - 是否可以从 Realm 迁移到 Sqlite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44208967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com