我在用我的 android 代码打开和写入 Realm 文件时遇到问题。
下面是示例代码。
public class FirstActivity extends AppCompatActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
RealmConfiguration realmA = new RealmConfiguration.Builder()
.name("A.realm")
.schemaVersion(1)
.build();
RealmConfiguration realmB = new RealmConfiguration.Builder()
.name("B.realm")
.schemaVersion(25)
.build();
Realm.init(this);
Realm realm_A = Realm.getInstance(realmA);
// Do some jobs with realm_A
}
}
例如,我做了两个名为 realmA 和 realmB 的配置。但是,我想在另一个名为 SecondActivity
的 Activity 中打开它们。
我知道 Realm.getDefaultInstance()
但是,有两个配置,所以我不能使用 Realm.setDefaultInstance()
您可以说在SecondActivity
中声明realmA 和realmB。但是,问题是每次修改架构后我都应该修改 RealmConfiguration,例如将 schemaVersion 1 更新为 2 等。这让我很困扰。:((如果有大量的 Activity ,我应该修改大量的..)
在其他类中使用RealmConfiguration有什么好的方法吗?
最佳答案
您应该将配置放在 Application 类中,因为当应用程序在前台时将被创建并可用。
public class MyApplication extends Application {
private RealmConfiguration rca, rcb;
@Override
public void onCreate() {
super.onCreate();
// add configuration here
// also init private variable of configuration
}
public RealmConfigurationA() {
return realmConfiguration;
}
}
然后在您的 list 文件中添加
<application
android:name=".MyApplication"
....
要访问您的配置,您可以在 MyApplication
类中创建一个 get inside 并将其与 cast 一起使用
RealmConfiguration rc = ((MyApplication) getApplicationContext()).getRealmConfigurationA();
关于android - 其他类中的 RealmConfiguration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45453228/