Reputation: 484
I am having trouble in opening and writing realm files in my android code.
Below is example code.
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
}
}
I make two configuration named realmA and realmB for example instance. But, I want to open them in another activity, named SecondActivity
.
I know Realm.getDefaultInstance()
but, there is two configuration so, I cannot use Realm.setDefaultInstance()
You can say that declare realmA and realmB in SecondActivity
. But, the problem is that I should modify RealmConfiguration every time after modifying schema like updating schemaVersion 1 to 2 etc. And that bother me.. :( (If there are tons of activities, I should modify tons of it..)
Is there any good way to use RealmConfiguration in other class?
Upvotes: 1
Views: 249
Reputation: 5158
You should put configuration in Application class because will be created and available when the app in foreground.
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;
}
}
And in your manifest file add
<application
android:name=".MyApplication"
....
To access your configuration, you can create a get inside MyApplication
class and use it with a cast
RealmConfiguration rc = ((MyApplication) getApplicationContext()).getRealmConfigurationA();
Upvotes: 4