TyeolRik
TyeolRik

Reputation: 484

RealmConfiguration in other class

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

Answers (1)

Cătălin Florescu
Cătălin Florescu

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

Related Questions