・Realmのインスタンス化
// Initialize Realm
Realm.init(context);
// Get a Realm instance for this thread
Realm realm = Realm.getDefaultInstance();
・設定のカスタマイズ
// 最小の設定
RealmConfiguration config = new RealmConfiguration.Builder().build();
// ビルダーパターンでRealmConfigurationを作成する。
// "myrealm.realm"という名前でContext.getFilesDir()の場所にファイルを作成する。
RealmConfiguration config = new RealmConfiguration.Builder()
.name("myrealm.realm")
.encryptionKey(getKey())
.schemaVersion(42)
.modules(new MySchemaModule())
.migration(new MyMigration())
.build();
// 設定に従ったRealmを取得します
Realm realm = Realm.getInstance(config);
・デフォルト設定
Applicationクラスでデフォルト設定を行うと
アプリケーション全体で同じ設定のRealmを使用できる。
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// The Realm file will be located in Context.getFilesDir() with name "default.realm"
Realm.init(this);
RealmConfiguration config = new RealmConfiguration.Builder().build();
Realm.setDefaultConfiguration(config);
}
}
public class MyActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Realm realm = Realm.getDefaultInstance();
try {
// ... Realmを使用した処理 ...
} finally {
realm.close();
}
}
}
・同期されたRealmを開く
SyncConfigurationを使う。
SyncCredentials myCredentials = SyncCredentials.usernamePassword("bob", "greatpassword", true);
SyncUser user = SyncUser.login(myCredentials, serverUrl());
SyncConfiguration config = new SyncConfiguration.Builder(user, realmUrl())
.schemaVersion(SCHEMA_VERSION)
.build();
// Use the config
Realm realm = Realm.getInstance(config);
・非同期にRealmを開く
RealmConfiguration config = new RealmConfiguration.Builder()
.schema(42)
.migration(new MyMigration()) // Potentially lengthy migration
.build();
RealmAsyncTask task = Realm.getInstanceAsync(config, new Realm.Callback() {
@Override
public void onSuccess(Realm realm) {
// Realm is opened and ready on the caller thread.
}
});
・初回ダウンロード
最初にリモートのデータを全てダウンロード完了してから
Realmを使用したい場合、getInstanceAsync()をwaitForRemoteInitialData()と
組み合わせて使用する。
SyncUser user = getUser();
String url = getUrl();
SyncConfiguration config = new SyncConfiguration.Builder(user, url)
.waitForRemoteInitialData();
.build();
RealmAsyncTask task = Realm.getInstanceAsync(config, new Realm.Callback() {
@Override
public void onSuccess(Realm realm) {
// Realm is now downloaded and ready. New changes to Realm will continue
// to be synchronized in the background as normal.
}
});
・データをメモリ上に保持する。
RealmConfiguration myConfig = new RealmConfiguration.Builder()
.name("myrealm.realm")
.inMemory()
.build();
・Realmを閉じる
2回 getInstance()を呼んだ場合は、close()も2回呼ぶ必要がある。
Realm realm = Realm.getDefaultInstance();
try {
// ... Realmインスタンスを使用するコード ...
} finally {
realm.close();
}
0コメント