我在Android代码中打开和编写域文件时遇到了麻烦。
以下是示例代码。
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
。
我知道Realm.getDefaultInstance()
但是,有两种配置,我不能使用Realm.setDefaultInstance()
你可以说在SecondActivity
中声明了realmA和realmB。但是,问题是我每次修改架构后都应该修改RealmConfiguration,比如更新schemaVersion 1到2等等。这让我感到困扰.. :((如果有很多活动,我应该修改它的吨数......)
有没有什么好方法可以在其他类中使用RealmConfiguration?
答案 0 :(得分:4)
您应该将配置放在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;
}
}
在清单文件中添加
<application
android:name=".MyApplication"
....
要访问您的配置,您可以创建一个get MyApplication
类并将其与强制转换一起使用
RealmConfiguration rc = ((MyApplication) getApplicationContext()).getRealmConfigurationA();