パッケージ io.realm
クラス Device Realm.コールバック
- java.lang.Object
-
- io.realm.BaseRealm.Instanceコールバック
-
- io.realm.DynamicRealm.Callback
-
- クラスを囲みます。
- DynamicRealm
public abstract static class DynamicRealm.Callback extends io.realm.BaseRealm.InstanceCallback<DynamicRealm>
Realm.getInstanceAsync(RealmConfiguration, Realm.Callback)
またはDynamicRealm.getInstanceAsync(RealmConfiguration, DynamicRealm.Callback)
のいずれかを使用して Realm を非同期にロードした結果を報告するときに使用されるコールバック。プロセスに最初の Realm インスタンスを作成する前に、スキーマの作成または検証、必要に応じて移行の実行、
RealmConfiguration.Builder.assetFile(String)
が指定されている場合はアセット ファイルのコピー、必要に応じてRealmConfiguration.Builder.initialData(Realm.Transaction)
の実行など、実行する必要がある初期化作業がいくつかあります。 この作業には時間がかかり、呼び出し元のスレッドが一時的にブロックされる場合があります。getInstance()
呼び出しがメイン スレッドをブロックしないようにするには、代わりにgetInstanceAsync()
を使用してバックグラウンド スレッドで初期化作業を行い、Realm インスタンスを呼び出し元のスレッドに渡します。一般に、このメソッドは UI スレッドでのみブロックされる必要があるため、ほとんどの場合、UI スレッドで役立ちます。 他のルーパー スレッドやコールバックをサポートしていないスレッドでは、標準の
getInstance()
を使用しても問題ありません。以下は、アプリが最初のアクティビティを開始するときに
getInstanceAsync()
を使用する例えです。public class MainActivity extends Activity { private Realm realm = null; private RealmAsyncTask realmAsyncTask; private static RealmConfiguration config = new RealmConfiguration.Builder() .schema(42) .migration(new MyMigration()) // Potentially lengthy migration .build(); \@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout_main); realmAsyncTask = Realm.getInstanceAsync(config, new Callback() { \@Override public void onSuccess(Realm realm) { if (isDestroyed()) { // If the activity is destroyed, the Realm instance should be closed immediately to avoid leaks. // Or you can call realmAsyncTask.cancel() in onDestroy() to stop callback delivery. realm.close(); } else { MainActivity.this.realm = realm; // Remove the spinner and start the real UI. } } }); // Show a spinner before Realm instance returned by the callback. } \@Override protected void onDestroy() { super.onDestroy(); if (realm != null) { realm.close(); realm = null; } else { // Calling cancel() on the thread where getInstanceAsync was called on to stop the callback delivery. // Otherwise you need to check if the activity is destroyed to close in the onSuccess() properly. realmAsyncTask.cancel(); } } }
-
-
コンストラクターの概要
コンストラクター Constructor 説明 Callback()
-
メソッドの概要
すべてのメソッド インスタンス メソッド 抽象メソッド 具象メソッド 修飾子と型 方式 説明 void
onError(Throwable exception)
呼び出し元スレッドに Realm インスタンスを作成するときに発生するエラーを提供します。abstract void
onSuccess(DynamicRealm realm)
Realm インスタンスを呼び出し元のスレッドに提供する。
-
-
-
メソッドの詳細
-
onSuccess
公開抽象特権 onSuccess ( Device Realm 邦土)
Realm インスタンスを呼び出し元のスレッドに提供する。- 次のによって指定されます。
onSuccess
クラス内io.realm.BaseRealm.InstanceCallback<DynamicRealm>
- パラメーター:
realm
- 呼び出し元スレッドの Realm インスタンス。
-
onError
public void onError(Throwable exception)
呼び出し元スレッドに Realm インスタンスを作成するときに発生するエラーを提供します。 デフォルトの 実装は呼び出し元のスレッドで例外をスローします。- 上書き:
onError
クラス内io.realm.BaseRealm.InstanceCallback<DynamicRealm>
- パラメーター:
exception
- バックグラウンド スレッドで Realm を初期化中に発生しました。
-
-