版本更改后更新领域数据

时间:2016-07-23 16:46:48

标签: android version realm

我的arrays.xml中有两个语言数组。所有语言和默认语言。

我有一个有两个字段的语言类。名称和isSelected。

我正在首次运行我的应用程序时将所有语言添加到我的Realm数据库中。如果语言是默认语言数组,我正在设置isSelected语言字段。

我的问题是,当我更新我的arrays.xml中的所有语言并发布我的应用程序的更新时,如何获取所选语言的旧领域数据,然后清除领域数据库并使用所有语言创建一个全新的在我的arrays.xml中,使用所选语言的旧域数据设置isSelected?

1 个答案:

答案 0 :(得分:1)

  1. 如果您只想更新现有语言数据并添加非令人兴奋的语言数据,那么您可以使用
  2. realm.executeTransaction(realm1 -> realm1.copyToRealmOrUpdate(languageList));

    1. 如果要在将更新的语言数据添加为新副本之前删除所有语言数据,则可以先删除所有语言数据并添加这样的新列表,
    2. realm.executeTransaction(realm1 -> realm1.delete(LanguageClass.class)); realm.executeTransaction(realm1 -> realm1.copyToRealmOrUpdate(languageList));

      1. 如果您想在添加新数据之前先删除整个Realm数据库文件,您可以先删除整个Realm,这将删除您可能拥有的LanguageClass数据和任何其他Realm类,
      2. Realm.deleteRealm(realmConfiguration); realm.executeTransaction(realm1 -> realm1.copyToRealmOrUpdate(languageList));

        注意:在您的情况下,最推荐的选项是选项no.1,这是在Realm中更新数据的最安全可靠的方法。

        注意2:您不应每次都复制语言数据,而只应在语言数据发生变化时复制/更新语言数据。