パッケージ io.realm

クラスRealm

  • すべての実装インターフェース:
    Closeable, AutoCloseable

    public class Realm
    extends Object
    Realm クラスは、オブジェクト永続ストアのストレージとトランザクションのマネージャーです。 RealmObjects のインスタンスの作成が担当されます。 Realm 内のオブジェクトはいつでもクエリされ、読み取ることができます。 オブジェクトの作成、変更、削除は トランザクション 内で行う必要があります。 利用可能な認証メカニズムについては、 executeTransaction(Transaction)

    トランザクションにより、(複数のスレッド上の)複数の インスタンスが、完全な ACID 保証と一貫した状態で同じオブジェクトにアクセスできるようになります。

    Realm インスタンスで実行する場合は、 Closeable.close()メソッドを呼び出すことを忘れないことが重要です。 ネイティブ リソースを解放できないため、そのような操作に失敗するとOutOfMemoryErrorが発生する可能性があります。

    Realm インスタンスは異なるスレッドでは使用できません。 つまり、Realm を使用する各スレッドで インスタンスを開く必要があります。 Realm インスタンスは参照カウントを使用してスレッドごとに自動的にキャッシュされるため、参照数が 0 にならない限り、 getInstance(RealmConfiguration)を呼び出してもキャッシュされた Realm のみが返されるため、軽量操作とみなしてください。

    これは UI スレッドの場合、Realm の開き方と閉じ方は onCreate/onDestructy または onStart/onStop のいずれかで行われる必要があることを意味します。

    Realm インスタンスは、 Handlerメカニズムを使用して、スレッド間で状態を調整します。 つまり、 Looperのないスレッド上の Realm インスタンスは、 refresh()が手動で呼び出されない限り更新を受信できません。

    Android アクティビティで Realm を使用して操作するための標準パターンは以下の通りです。

     public class RealmApplication extends Application {
    
         \@Override
         public void onCreate() {
             super.onCreate();
    
             // The Realm file will be located in package's "files" directory.
             RealmConfiguration realmConfig = new RealmConfiguration.Builder(this).build();
             Realm.setDefaultConfiguration(realmConfig);
         }
     }
    
     public class RealmActivity extends Activity {
    
       private Realm realm;
    
       \@Override
       protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.layout_main);
         realm = Realm.getDefaultInstance();
       }
    
       \@Override
       protected void onDestroy() {
         super.onDestroy();
         realm.close();
       }
     }
     

    Realm は、最大 16 MB の string およびバイト フィールドをサポートします。

    以下も参照してください。
    ACIDRealm を使用する例
    • フィールドの詳細

      • Encryption_KEY_Length

        public static final int ENCRYPTION_KEY_LENGTH
        Realm データの暗号化に使用される暗号化キーに必要な長さ。
        以下も参照してください。
        定数フィールド値
      • WRITE_EXECUTOR

        public static final io.realm.internal.async.RealmThreadPoolExecutor WRITE_EXECUTOR
        書込み操作に使用されるスレッド プール エグゼキュータ。書込みは並列化できないため、1 つのスレッドのみが必要です。
      • SharedRealm

        public io.realm.internal.OsSharedRealm sharedRealm
      • objectContext

        public static final io.realm.BaseRealm.ThreadLocalRealmObjectContext objectContext
    • メソッドの詳細

      • asFlowable

        public Flowable<Realm> asFlowable()
        この Realm への変更を監視する RxJava フロー可能を返します。 にサブスクライブすると、現在の状態が発行されます。 Realm が更新されるにつれてアイテムは継続的に出力されます。 onCompleteは呼び出されません。

        Realm フロー可能から出力されるアイテムは固定されています( freeze()を参照してください。 つまり、これらは不変で、どのスレッドでも読み取ることができます。

        Realm フロー接続は、ライブ Realm を保持するスレッドから常にアイテムを出力します。 つまり、追加の処理が必要な場合は、計算スケジューラーで の値を確認することをお勧めします。

        realm.asFlowable() .observeOn(Schedulers.computation()) .map(rxRealm -> doExpensiveWork(rxRealm)) .observeOn(AndroidSchedulers.mainThread()) .subscribe( ... );

        asFlowable()で 項目の発行を停止する場合は、 first()演算子を使用して RxJava に最初の 項目のみを発行するように指示できます。

         
         realm.asFlowable().first().subscribe( ... ); // You only get the results once
         
         
        次の値を返します。
        RxJava Observable はonNextのみを呼び出します。 onCompleteまたはOnErrorは呼び出されません。
        以下も参照してください。
        RxJava と Realm
      • isEmpty

        公開ブール値 isEmpty()
        このRealmにオブジェクトが含まれているかどうかを確認します。
        次の値を返します。
        true 空の場合は @{code false} を します。
      • getSchema

        public RealmSchema getSchema()
        この Realm のスキーマを返します。 スキーマは不変です。 この値を変更しようとすると、 UnsupportedOperationExceptionが返されます。

        スキーマは、 DynamicRealm.getSchema()を使用するか、移行によってのみ変更できます。

        次の値を返します。
        この Realm のRealmSchema
      • init

        public static void init​(Context context)
        Realm ライブラリを初期化し、すぐに使用できるデフォルト構成を作成します。 Realm API の他の を操作する前に、このメソッドを呼び出す必要があります。

        適切な場所はApplicationサブクラス内にあります。

         
         public class MyApplication extends Application {
           \@Override
           public void onCreate() {
             super.onCreate();
             Realm.init(this);
           }
         }
         
         

        これをAndroidManifest.xmlファイルに必ず登録してください。

         
         <?xml version="1.0" encoding="utf-8"?>
         <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="io.realm.example">
         <application android:name=".MyApplication">
           // ...
         </application>
         </manifest>
         
         
        パラメーター:
        context - アプリケーション コンテキスト。
        次の例外がスローされます。
        IllegalArgumentException - nullコンテキストが提供されている場合。
        IllegalStateException - Context.getFilesDir()が見つからなかった場合。
        以下も参照してください。
        getDefaultInstance()
      • init

        public static void init​(Context context,
                                String userAgent)
        Realm ライブラリを初期化し、すぐに使用できるデフォルト構成を作成します。 Realm API の他の を操作する前に、このメソッドを呼び出す必要があります。

        適切な場所はApplicationサブクラス内にあります。

         
         public class MyApplication extends Application {
           \@Override
           public void onCreate() {
             super.onCreate();
             Realm.init(this, "MyApp/" + BuildConfig.VERSION_NAME);
           }
         }
         
         

        これをAndroidManifest.xmlファイルに必ず登録してください。

         
         <?xml version="1.0" encoding="utf-8"?>
         <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="io.realm.example">
         <application android:name=".MyApplication">
           // ...
         </application>
         </manifest>
         
         
        パラメーター:
        context - アプリケーション コンテキスト。
        userAgent - セッションが確立されるときに ヘッダーの一部として オブジェクト サーバーに送信される任意のユーザー定義 string。RealmUser-Agentこの設定は、同期されていない Realm では使用されません。
        次の例外がスローされます。
        IllegalArgumentException - nullコンテキストまたは userAgent が提供されている場合。
        IllegalStateException - Context.getFilesDir()が見つからなかった場合。
        以下も参照してください。
        getDefaultInstance()
      • getDefaultInstance

        public static Realm getDefaultInstance()
        Realm の静的コンストラクターは、 RealmConfigurationによってsetDefaultConfiguration(RealmConfiguration)によって設定された Realm インスタンスを返します。
        次の値を返します。
        Realm クラスのインスタンス。
        次の例外がスローされます。
        NullPointerException - デフォルト構成が定義されていない場合。
        RealmMigrationNeededException - デフォルト構成で移行が提供されておらず、 かつ
        RealmFileException - 基礎となる Realm ファイルにアクセスするときにエラーが発生した場合。 が設定されており、ダウンロードの進行中に Realm を開くスレッドが中断されました。
      • getInstanceAsync

        public static RealmAsyncTask getInstanceAsync​(RealmConfiguration configuration,
                                                      Realm.Callback callback)
        プロセスでRealmConfigurationごとに最初の Realm インスタンスを作成するには、その時点ですべての初期化コードを実行する必要があるため、時間がかかる場合があります(Realmの設定、スキーマの検証、初期データの作成)。 このメソッドは初期化作業をバックグラウンド スレッドに配置し、初期化完了後に Realm インスタンスを呼び出し元のスレッドに非同期に配信します。
        パラメーター:
        configuration - Realm を開くために使用されるRealmConfiguration
        callback - 結果を返すために呼び出されます。
        次の値を返します。
        キャンセル可能なタスクを表すRealmAsyncTask
        次の例外がスローされます。
        IllegalArgumentException - null RealmConfigurationまたは null Realm.Callbackが提供された場合。
        IllegalStateException - 以外の loader またはIntentServiceスレッドから呼び出された場合。
        以下も参照してください。
        for more details.
      • getDefaultConfiguration

        @Nullable
        public static RealmConfiguration getDefaultConfiguration()
        getDefaultInstance()のデフォルト構成を返します。
        次の値を返します。
        デフォルト構成オブジェクト、またはデフォルト構成が指定されていない場合はnull
      • deleteDefaultConfiguration

        public static void removeDefaultConfiguration()
        現在のデフォルト構成(存在する場合)を削除します。 getDefaultInstance()を使用して新しいデフォルト構成が設定されるまで、setDefaultConfiguration(RealmConfiguration) へのそれ以降の呼び出しは失敗します。
      • createAllFromJson

        public <E extends RealmModel> void createAllFromJson​(Class<E> clazz,
                                                             JSONArray json)
        JSON 配列内の各オブジェクトに対して Realm オブジェクトを作成します。 これは トランザクション 内で実行する必要があります。

        不明なプロパティを持つ JSON プロパティは無視されます。 JSON オブジェクトにRealmObjectフィールドが存在しない場合、 RealmObjectフィールドにはそのタイプのデフォルト値が設定されます。

        このメソッドは現在、値リスト フィールドをサポートしていません。

        パラメーター:
        clazz 作成する Realm オブジェクトの - タイプ。
        json - 各 JSON Object が指定されたクラスにマップする必要がある配列。
        次の例外がスローされます。
        RealmException - JSON からのマッピングが失敗した場合。
        IllegalArgumentException - JSON オブジェクトにプライマリキー プロパティがなく、対応するRealmObjectSchemaPrimaryKeyが定義されている場合。
        UnsupportedOperationException - 挿入するオブジェクトにRealmDictionaryまたはRealmSetが含まれている場合。
        以下も参照してください。
        RealmSet, RealmDictionary, RealmMap
      • createOrUpdateAllFromJson

        public <E extends RealmModel> void createOrUpdateAllFromJson​(Class<E> clazz,
                                                                     JSONArray json)
        プライマリキーで識別される既存のオブジェクトのリストを新しい JSON データで更新しようとします。 既存のオブジェクトが Realm で見つからなかった場合は、新しいオブジェクトが作成されます。 これは トランザクション 内で実行する必要があります。 RealmObjectを更新しており、JSON オブジェクトにフィールドが見つからない場合、そのフィールドは更新されません。 新しいRealmObjectが作成され、JSON オブジェクトにフィールドが見つからない場合は、そのフィールドに フィールドタイプのデフォルト値が割り当てられます。

        このメソッドは現在、値リスト フィールドをサポートしていません。

        パラメーター:
        clazz - 作成または更新するRealmObjectの タイプ。 プライマリキー が定義されている必要があります。
        json - オブジェクト データを含む配列。
        次の例外がスローされます。
        IllegalArgumentException - PrimaryKeyなしでクラスを更新しようとする場合
        IllegalArgumentException - JSON オブジェクトにプライマリキー プロパティがなく、対応するRealmObjectSchemaPrimaryKeyが定義されている場合。
        RealmException - JSON をマッピングできない場合。
        UnsupportedOperationException - 挿入するオブジェクトにRealmDictionaryまたはRealmSetが含まれている場合。
        以下も参照してください。
        createAllFromJson(Class, org.json.JSONArray), RealmSet, RealmDictionary, RealmMap
      • createAllFromJson

        public <E extends RealmModel> void createAllFromJson​(Class<E> clazz,
                                                             String json)
        JSON 配列内の各オブジェクトに対して Realm オブジェクトを作成します。 これは トランザクション 内で実行する必要があります。 不明なプロパティを持つ JSON プロパティは無視されます。 JSON オブジェクトにRealmObjectフィールドが存在しない場合、 RealmObjectフィールドにはそのタイプのデフォルト値が設定されます。

        このメソッドは現在、値リスト フィールドをサポートしていません。

        パラメーター:
        clazz 作成する Realm オブジェクトの - タイプ。
        json -JSON string各オブジェクトが指定されたクラスにマップできる としての 配列。
        次の例外がスローされます。
        RealmException - JSON からのマッピングが失敗した場合。
        IllegalArgumentException - JSON オブジェクトにプライマリキー プロパティがなく、対応するRealmObjectSchemaPrimaryKeyが定義されている場合。
        UnsupportedOperationException - 挿入するオブジェクトにRealmDictionaryまたはRealmSetが含まれている場合。
        以下も参照してください。
        RealmSet, RealmDictionary, RealmMap
      • createOrUpdateAllFromJson

        public <E extends RealmModel> void createOrUpdateAllFromJson​(Class<E> clazz,
                                                                     String json)
        プライマリキーで識別される既存のオブジェクトのリストを新しい JSON データで更新しようとします。 既存のオブジェクトが Realm で見つからなかった場合は、新しいオブジェクトが作成されます。 これは トランザクション 内で実行する必要があります。 RealmObjectを更新しており、JSON オブジェクトにフィールドが見つからない場合、そのフィールドは更新されません。 新しいRealmObjectが作成され、JSON オブジェクトにフィールドが見つからない場合は、そのフィールドに フィールドタイプのデフォルト値が割り当てられます。

        このメソッドは現在、値リスト フィールドをサポートしていません。

        パラメーター:
        clazz - 作成または更新するRealmObjectの タイプ。 プライマリキー が定義されている必要があります。
        json - JSON オブジェクトの配列を含む string。
        次の例外がスローされます。
        IllegalArgumentException - PrimaryKeyなしでクラスを更新しようとする場合
        RealmException -JSON からJSONstring 配列を作成できない場合。
        IllegalArgumentException - JSON オブジェクトにプライマリキー プロパティがなく、対応するRealmObjectSchemaPrimaryKeyが定義されている場合。
        UnsupportedOperationException - 挿入するオブジェクトにRealmDictionaryまたはRealmSetが含まれている場合。
        以下も参照してください。
        createAllFromJson(Class, String), RealmSet, RealmDictionary, RealmMap
      • createAllFromJson

        public <E extends RealmModel> void createAllFromJson​(Class<E> clazz,
                                                             InputStream inputStream)
                                                      throws IOException
        JSON 配列内の各オブジェクトに対して Realm オブジェクトを作成します。 これは トランザクション 内で実行する必要があります。 不明なプロパティを持つ JSON プロパティは無視されます。 JSON オブジェクトにRealmObjectフィールドが存在しない場合、 RealmObjectフィールドにはそのタイプのデフォルト値が設定されます。

        この API は、API レベル 11 以降でのみ使用できます。

        このメソッドは現在、値リスト フィールドをサポートしていません。

        パラメーター:
        clazz 作成された Realm オブジェクトの タイプ。
        inputStream -入力ストリームとしての JSON 配列。 配列内のすべてのオブジェクトは、指定されたクラスである必要があります。
        次の例外がスローされます。
        RealmException - JSON からのマッピングが失敗した場合。
        IllegalArgumentException - JSON オブジェクトにプライマリキー プロパティがなく、対応するRealmObjectSchemaPrimaryKeyが定義されている場合。
        IOException - 入力ストリームで問題が発生した場合。
        UnsupportedOperationException - 挿入するオブジェクトにRealmDictionaryまたはRealmSetが含まれている場合。
        以下も参照してください。
        RealmSet, RealmDictionary, RealmMap
      • createOrUpdateAllFromJson

        public <E extends RealmModel> void createOrUpdateAllFromJson​(Class<E> clazz,
                                                                     InputStream in)
        プライマリキーで識別される既存のオブジェクトのリストを新しい JSON データで更新しようとします。 既存のオブジェクトが Realm で見つからなかった場合は、新しいオブジェクトが作成されます。 これは トランザクション 内で実行する必要があります。 RealmObjectを更新しており、JSON オブジェクトにフィールドが見つからない場合、そのフィールドは更新されません。 新しいRealmObjectが作成され、JSON オブジェクトにフィールドが見つからない場合は、そのフィールドに フィールドタイプのデフォルト値が割り当てられます。

        この API は、API レベル 11 以降でのみ使用できます。

        このメソッドは現在、値リスト フィールドをサポートしていません。

        パラメーター:
        clazz - 作成または更新するRealmObjectの タイプ。 プライマリキー が定義されている必要があります。
        in - JSON 形式のオブジェクト データのリストを含む inputStream 。
        次の例外がスローされます。
        IllegalArgumentException - PrimaryKeyなしでクラスを更新しようとする場合
        IllegalArgumentException - JSON オブジェクトにプライマリキー プロパティがなく、対応するRealmObjectSchemaPrimaryKeyが定義されている場合。
        RealmException - JSON を読み取れない場合。
        UnsupportedOperationException - 挿入するオブジェクトにRealmDictionaryまたはRealmSetが含まれている場合。
        以下も参照してください。
        createOrUpdateAllFromJson(Class, java.io.InputStream), RealmSet, RealmDictionary, RealmMap
      • createObjectFromJson

        @Nullable
        public <E extends RealmModel> E createObjectFromJson​(Class<E> clazz,
                                                             JSONObject json)
        JSON オブジェクトのデータが事前入力された Realm オブジェクトを作成します。 これは トランザクション 内で実行する必要があります。 不明なプロパティを持つ JSON プロパティは無視されます。 JSON オブジェクトにRealmObjectフィールドが存在しない場合、 RealmObjectフィールドにはそのタイプのデフォルト値が設定されます。

        このメソッドは現在、値リスト フィールドをサポートしていません。

        パラメーター:
        clazz 作成する Realm オブジェクトの - タイプ。
        json - オブジェクト データを持つ JSONObject。
        次の値を返します。
        はオブジェクトを作成するか、JSON データが提供されていない場合はnullを作成します。
        次の例外がスローされます。
        RealmException - JSON からのマッピングが失敗した場合。
        IllegalArgumentException - JSON オブジェクトにプライマリキー プロパティがなく、対応するRealmObjectSchemaPrimaryKeyが定義されている場合。
        UnsupportedOperationException - 挿入するオブジェクトにRealmDictionaryまたはRealmSetが含まれている場合。
        以下も参照してください。
        createOrUpdateObjectFromJson(Class, org.json.JSONObject), RealmSet, RealmDictionary, RealmMap
      • createOrUpdateObjectFromJson

        public <E extends RealmModel> E createOrUpdateObjectFromJson​(Class<E> clazz,
                                                                     JSONObject json)
        プライマリキーで定義された既存のオブジェクトを新しい JSON データで更新しようとします。 既存のオブジェクトが見つからない場合は、新しいオブジェクトが Realm に保存されます。 これは トランザクション 内で実行する必要があります。 RealmObjectを更新しており、JSON オブジェクトにフィールドが見つからない場合、そのフィールドは更新されません。 新しいRealmObjectが作成され、JSON オブジェクトにフィールドが見つからない場合は、そのフィールドに フィールドタイプのデフォルト値が割り当てられます。

        このメソッドは現在、値リスト フィールドをサポートしていません。

        パラメーター:
        clazz - 作成または更新するRealmObjectのタイプ。 プライマリキー が定義されている必要があります。
        json - オブジェクト データの場合、 JSONObject
        次の値を返します。
        RealmObjectが作成または更新されました。
        次の例外がスローされます。
        IllegalArgumentException - PrimaryKeyなしでクラスを更新しようとする場合
        IllegalArgumentException - JSON オブジェクトにプライマリキー プロパティがなく、対応するRealmObjectSchemaPrimaryKeyが定義されている場合。
        RealmException - JSON データをマッピングできない場合。
        UnsupportedOperationException - 挿入するオブジェクトにRealmDictionaryまたはRealmSetが含まれている場合。
        以下も参照してください。
        createObjectFromJson(Class, org.json.JSONObject), RealmSet, RealmDictionary, RealmMap
      • createObjectFromJson

        @Nullable
        public <E extends RealmModel> E createObjectFromJson​(Class<E> clazz,
                                                             String json)
        JSON オブジェクトのデータが事前入力された Realm オブジェクトを作成します。 これは トランザクション 内で実行する必要があります。 不明なプロパティを持つ JSON プロパティは無視されます。 JSON オブジェクトにRealmObjectフィールドが存在しない場合、 RealmObjectフィールドにはそのタイプのデフォルト値が設定されます。

        このメソッドは現在、値リスト フィールドをサポートしていません。

        パラメーター:
        clazz 作成する Realm オブジェクトの - タイプ。
        json - オブジェクト データを含む JSON string。
        次の値を返します。
        はオブジェクトを作成するか、JSON string が空または null の場合はnullを作成しました。
        次の例外がスローされます。
        RealmException - JSONへのマッピングが失敗した場合。
        IllegalArgumentException - JSON オブジェクトにプライマリキー プロパティがなく、対応するRealmObjectSchemaPrimaryKeyが定義されている場合。
        UnsupportedOperationException - 挿入するオブジェクトにRealmDictionaryまたはRealmSetが含まれている場合。
        以下も参照してください。
        RealmSet, RealmDictionary, RealmMap
      • createOrUpdateObjectFromJson

        public <E extends RealmModel> E createOrUpdateObjectFromJson​(Class<E> clazz,
                                                                     String json)
        プライマリキーで定義された既存のオブジェクトを新しい JSON データで更新しようとします。 既存のオブジェクトが見つからない場合は、新しいオブジェクトが Realm に保存されます。 これは トランザクション 内で実行する必要があります。 RealmObjectを更新しており、JSON オブジェクトにフィールドが見つからない場合、そのフィールドは更新されません。 新しいRealmObjectが作成され、JSON オブジェクトにフィールドが見つからない場合は、そのフィールドに フィールドタイプのデフォルト値が割り当てられます。

        このメソッドは現在、値リスト フィールドをサポートしていません。

        パラメーター:
        clazz - 作成または更新するRealmObjectの タイプ。 プライマリキー が定義されている必要があります。
        json - JSON 形式のオブジェクト データを持つ string。
        次の値を返します。
        RealmObjectが作成または更新されました。
        次の例外がスローされます。
        IllegalArgumentException - PrimaryKeyなしでクラスを更新しようとする場合
        IllegalArgumentException - JSON オブジェクトにプライマリキー プロパティがなく、対応するRealmObjectSchemaPrimaryKeyが定義されている場合。
        RealmException - JSON オブジェクトを string パラメーターからマッピングできない場合。
        UnsupportedOperationException - 挿入するオブジェクトにRealmDictionaryまたはRealmSetが含まれている場合。
        以下も参照してください。
        createObjectFromJson(Class, String), RealmSet, RealmDictionary, RealmMap
      • createObjectFromJson

        @Nullable
        public <E extends RealmModel> E createObjectFromJson​(Class<E> clazz,
                                                             InputStream inputStream)
                                                      throws IOException
        JSON オブジェクトのデータが事前入力された Realm オブジェクトを作成します。 これは トランザクション 内で実行する必要があります。 不明なプロパティを持つ JSON プロパティは無視されます。 JSON オブジェクトにRealmObjectフィールドが存在しない場合、 RealmObjectフィールドにはそのタイプのデフォルト値が設定されます。

        この API は、API レベル 11 以降でのみ使用できます。

        このメソッドは現在、値リスト フィールドをサポートしていません。

        パラメーター:
        clazz 作成する Realm オブジェクトの - タイプ。
        inputStream -入力ストリームとしての JSON オブジェクト データ。
        次の値を返します。
        はオブジェクトを作成するか、JSON string が空または null の場合はnullを作成しました。
        次の例外がスローされます。
        RealmException - JSON からのマッピングが失敗した場合。
        IllegalArgumentException - JSON オブジェクトにプライマリキー プロパティがなく、対応するRealmObjectSchemaPrimaryKeyが定義されている場合。
        IOException - 入力ストリームで問題が発生した場合。
        UnsupportedOperationException - 挿入するオブジェクトにRealmDictionaryまたはRealmSetが含まれている場合。
        以下も参照してください。
        RealmSet, RealmDictionary, RealmMap
      • createOrUpdateObjectFromJson

        public <E extends RealmModel> E createOrUpdateObjectFromJson​(Class<E> clazz,
                                                                     InputStream in)
        プライマリキーで定義された既存のオブジェクトを新しい JSON データで更新しようとします。 既存のオブジェクトが見つからない場合は、新しいオブジェクトが Realm に保存されます。 これは トランザクション 内で実行する必要があります。 RealmObjectを更新しており、JSON オブジェクトにフィールドが見つからない場合、そのフィールドは更新されません。 新しいRealmObjectが作成され、JSON オブジェクトにフィールドが見つからない場合は、そのフィールドに フィールドタイプのデフォルト値が割り当てられます。

        この API は、API レベル 11 以降でのみ使用できます。

        このメソッドは現在、値リスト フィールドをサポートしていません。

        パラメーター:
        clazz - 作成または更新するRealmObjectの タイプ。 プライマリキー が定義されている必要があります。
        in - JSON 形式のオブジェクト データを持つInputStream
        次の値を返します。
        RealmObjectが作成または更新されました。
        次の例外がスローされます。
        IllegalArgumentException - PrimaryKeyなしでクラスを更新しようとする場合
        IllegalArgumentException - JSON オブジェクトにプライマリキー プロパティがなく、対応するRealmObjectSchemaPrimaryKeyが定義されている場合。
        RealmException - JSON の読み取りに失敗した場合。
        UnsupportedOperationException - 挿入するオブジェクトにRealmDictionaryまたはRealmSetが含まれている場合。
        以下も参照してください。
        createObjectFromJson(Class, java.io.InputStream), RealmSet, RealmDictionary, RealmMap
      • createObject

        public <E extends RealmModel> E createObject​(Class<E> clazz)
        インスタンス化して、新しいオブジェクトを Realm に追加します。

        This method is only available for model classes with no @PrimaryKey annotation. プライマリキーを持つオブジェクトを作成する場合は、代わりにcreateObject(Class, Object)またはcopyToRealm(RealmModel, ImportFlag...)を使用します。

        パラメーター:
        clazz - 作成するオブジェクトの クラス 。
        次の値を返します。
        新しい オブジェクト。
        次の例外がスローされます。
        RealmException - プライマリキーがモデル クラスで定義されている場合、またはオブジェクトを作成できない場合。
        以下も参照してください。
        createObject(Class, Object)
      • createObject

        public <E extends RealmModel> E createObject​(Class<E> clazz,
                                                     @Nullable
                                                     Object primaryKeyValue)
        プライマリキー値がすでに設定されている新しいオブジェクトをインスタンス化し、Realm に追加します。

        値がプライマリキー制約に違反する場合、オブジェクトは追加されず、 RealmExceptionがスローされます。 モデル クラスによって提供されるプライマリキーのデフォルト値は無視されます。

        パラメーター:
        clazz - 作成するオブジェクトの クラス 。
        primaryKeyValue プライマリキー フィールドの - 値。
        次の値を返します。
        新しい オブジェクト。
        次の例外がスローされます。
        RealmException - プライマリキーが無効であるためオブジェクトを作成できなかった場合。
        IllegalStateException - モデル クラスにプライマリキーが定義されていない場合。
        IllegalArgumentException - 期待値に変換できる値がprimaryKeyValueにない場合。
      • create埋め込みオブジェクト

        public <E extends RealmModel> E createEmbeddedObject​(Class<E> clazz,
                                                             RealmModel parentObject,
                                                             String parentProperty)
        インスタンス化して、新しい埋め込みオブジェクトを Realm に追加します。

        このメソッドは、埋め込みとしてマークされているタイプのオブジェクトを作成するためにのみ使用してください。

        パラメーター:
        clazz - 作成するオブジェクトの クラス 。 \@RealmClass(embedded = true)でマークする必要があります。
        parentObject - 埋め込みオブジェクトへの参照を保持する親オブジェクト。
        parentProperty - 参照を保持する親クラスの プロパティ。 親プロパティがリストの場合、埋め込みオブジェクトはそのリストの末尾に追加されます。
        次の値を返します。
        新しく作成された埋め込みオブジェクト。
        次の例外がスローされます。
        IllegalArgumentException - clazzが埋め込みクラスではない場合、または親クラスのプロパティが適切な型のオブジェクトを保持できない場合。
        以下も参照してください。
        RealmClass.embedded()
      • copyToRealm

        public <E extends RealmModel> E copyToRealm​(E object,
                                                    ImportFlag... flags)
        RealmObject を Realm インスタンスにコピーし、コピーを返します。 元の Realm オブジェクトへのこれ以上の変更は Realm のコピーには反映されません。 これはディープ コピーであるため、参照されたすべてのオブジェクトがコピーされます。 この Realm にすでに存在するオブジェクトは無視されます。

        オブジェクトをコピーすると、すべてのフィールド値がコピーされることに注意してください。 このオブジェクトと子オブジェクト内の設定されていないフィールドは、指定されない場合はデフォルト値に設定されます。

        パラメーター:
        object - Realm にコピーするRealmObject
        flags - Realm にデータを挿入する際の動作を変更する任意のフラグ。
        次の値を返します。
        Realm によってサポートされるプロパティを持つ管理対象 Realm オブジェクト。
        次の例外がスローされます。
        IllegalArgumentException - オブジェクトがnullであるか、別のスレッドの Realm インスタンスに属している場合。
      • copyToRealmOrUpdate

        public <E extends RealmModel> E copyToRealmOrUpdate​(E object,
                                                            ImportFlag... flags)
        同じPrimaryKeyによって識別される既存の RealmObject を更新するか、既存のオブジェクトが見つからない場合は新しいコピーを作成します。 これは詳細なコピーまたはアップデートであり、参照されているすべてのオブジェクトがコピーまたはアップデートされます。

        オブジェクトをコピーすると、すべてのフィールド値がコピーされることに注意してください。 オブジェクトおよび子オブジェクト内の設定されていないフィールドは、指定されない場合、デフォルト値に設定されます。

        パラメーター:
        object - コピーまたはアップデートするにはRealmObject
        flags - Realm にデータを挿入する際の動作を変更する任意のフラグ。
        次の値を返します。
        すべてのプロパティが Realm によってサポートされる新しいまたはアップデートされた RealmObject。
        次の例外がスローされます。
        IllegalArgumentException - オブジェクトがnullであるか、プライマリキーが定義されていない場合、または別のスレッドの Realm インスタンスに属している場合。
        以下も参照してください。
        copyToRealm(RealmModel, ImportFlag...)
      • copyToRealm

        public <E extends RealmModelList<E> copyToRealm​(Iterable<E> objects,
                                                          ImportFlag... flags)
        RealmObject のコレクションを Realm インスタンスにコピーし、そのコピーを返します。 元の Realm オブジェクトへのこれ以上の変更は Realm のコピーには反映されません。 これはディープ コピーであるため、参照されているオブジェクトはすべてコピーされます。 この Realm にすでに存在するオブジェクトは無視されます。

        オブジェクトをコピーすると、すべてのフィールド値がコピーされることに注意してください。 オブジェクトと子オブジェクト内の設定されていないフィールドは、指定されない場合、デフォルト値に設定されます。

        パラメーター:
        objects - Realm にコピーする RealmObjects。
        flags - Realm にデータを挿入する際の動作を変更する任意のフラグ。
        次の値を返します。
        すべてが Realm によって管理されるプロパティを持つ変換された Realm オブジェクトのリスト。
        次の例外がスローされます。
        RealmException - オブジェクトのいずれかがすでに Realm に追加されている場合。
        IllegalArgumentException - 入力コレクション内のいずれかの要素がnullの場合。
      • insert

        public void insert​(Collection<? extends RealmModel> objects)
        マネージドされていない RealmObjects のリストを挿入します。 これは通常、挿入された要素を返さず、最小の割り当てとチェックを実行するため、 copyToRealm(Iterable, ImportFlag...)よりも高速です。 が挿入された後は、元のオブジェクトへの変更は保持されません。

        注意すること:

        • 提供されたオブジェクトがすでに管理されているかどうかは確認されないため、管理されているオブジェクトを挿入すると重複する可能性があります。 重複は、オブジェクトにプライマリキーがない場合にのみ発生します。 プライマリキーを持つオブジェクトは重複しません。
        • 各要素に対して管理されたRealmObjectを作成することはありません(または返すこともありません)
        • オブジェクトをコピーすると、すべてのフィールド値がコピーされます。 オブジェクトと子オブジェクト内の設定されていないフィールドは、指定されていない場合はデフォルト値に設定されます

        管理されたRealmObjectを返す場合は、 copyToRealm(Iterable, ImportFlag...)を使用します。そうでない場合、オブジェクトが多数ある場合は、このメソッドは通常高速です。

        パラメーター:
        objects - 挿入する RealmObjects。
        次の例外がスローされます。
        IllegalStateException - 対応する Realm が閉じている場合、誤ったスレッドから、またはトランザクションにない場合に呼び出されます。
      • insert

        public void insert​(RealmModel object)
        マネージドされていない RealmObject を挿入します。 これは通常、挿入された要素を返さず、最小の割り当てとチェックを実行するため、 copyToRealm(RealmModel, ImportFlag...)よりも高速です。 が挿入された後は、元のオブジェクトへの変更は保持されません。

        注意すること:

        • 提供されたオブジェクトがすでに管理されているかどうかは確認されないため、管理されているオブジェクトを挿入すると重複する可能性があります。 重複は、オブジェクトにプライマリキーがない場合にのみ発生します。 プライマリキーを持つオブジェクトは重複しません。
        • 各要素に対して管理されたRealmObjectを作成することはありません(または返すこともありません)
        • オブジェクトをコピーすると、すべてのフィールド値がコピーされます。 オブジェクトと子オブジェクト内の設定されていないフィールドは、指定されていない場合はデフォルト値に設定されます

        管理されたRealmObjectを返す場合は、 copyToRealm(RealmModel, ImportFlag...)を使用します。そうでない場合、オブジェクトが多数ある場合は、このメソッドは通常高速です。

        パラメーター:
        object - 挿入する RealmObjects。
        次の例外がスローされます。
        IllegalStateException - 対応する Realm が閉じている場合、誤ったスレッドから、またはトランザクションにない場合に呼び出されます。
        RealmPrimaryKeyConstraintException - 同じプライマリキーを持つ 2 つのオブジェクトが挿入されている場合、またはプライマリキー値が Realm にすでに存在する場合。
      • insertOrUpdate

        public void insertOrUpdate​(Collection<? extends RealmModel> objects)
        管理されていない RealmObject のリストを挿入または更新します。 これは通常、挿入された要素を返さず、最小の割り当てとチェックを実行するため、 copyToRealmOrUpdate(Iterable, ImportFlag...)よりも高速です。 が挿入された後は、元のオブジェクトへの変更は保持されません。

        注意すること:

        • 提供されたオブジェクトがすでに管理されているかどうかは確認されないため、管理されているオブジェクトを挿入すると重複する可能性があります。 重複は、オブジェクトにプライマリキーがない場合にのみ発生します。 プライマリキーを持つオブジェクトは重複しません。
        • 各要素に対して管理されたRealmObjectを作成することはありません(または返すこともありません)
        • オブジェクトをコピーすると、すべてのフィールド値がコピーされます。 オブジェクトと子オブジェクト内の設定されていないフィールドは、指定されていない場合はデフォルト値に設定されます

        管理されたRealmObjectを返す場合は、 copyToRealm(Iterable, ImportFlag...)を使用します。そうでない場合、オブジェクトが多数ある場合は、このメソッドは通常高速です。

        パラメーター:
        objects - 挿入する RealmObjects。
        次の例外がスローされます。
        IllegalStateException - 対応する Realm が閉じている場合、誤ったスレッドから、またはトランザクションにない場合に呼び出されます。
        RealmPrimaryKeyConstraintException - 同じプライマリキーを持つ 2 つのオブジェクトが挿入されている場合、またはプライマリキー値が Realm にすでに存在する場合。
      • insertOrUpdate

        public void insertOrUpdate​(RealmModel object)
        管理されていない RealmObject を挿入または更新します。 これは通常、挿入された要素を返さず、最小の割り当てとチェックを実行するため、 copyToRealmOrUpdate(RealmModel, ImportFlag...)よりも高速です。 が挿入された後は、元のオブジェクトへの変更は保持されません。

        注意すること:

        • 提供されたオブジェクトがすでに管理されているかどうかは確認されないため、管理されているオブジェクトを挿入すると重複する可能性があります。 重複は、オブジェクトにプライマリキーがない場合にのみ発生します。 プライマリキーを持つオブジェクトは重複しません。
        • 各要素に対して管理されたRealmObjectを作成することはありません(または返すこともありません)
        • オブジェクトをコピーすると、すべてのフィールド値がコピーされます。 オブジェクトと子オブジェクト内の設定されていないフィールドは、指定されていない場合はデフォルト値に設定されます

        管理されたRealmObjectを返す場合は、 copyToRealm(RealmModel, ImportFlag...)を使用します。そうでない場合、オブジェクトが多数ある場合は、このメソッドは通常高速です。

        パラメーター:
        object - 挿入する RealmObjects。
        次の例外がスローされます。
        IllegalStateException - 対応する Realm が閉じている場合、誤ったスレッドから、またはトランザクションにない場合に呼び出されます。
      • copyToRealmOrUpdate

        public <E extends RealmModelList<E> copyToRealmOrUpdate​(Iterable<E> objects,
                                                                  ImportFlag... flags)
        PrimaryKeyで識別される既存の RealmObject のリストを更新するか、既存のオブジェクトが見つからない場合は新しいコピーを作成します。 これは詳細なコピーまたはアップデートであり、参照されているすべてのオブジェクトがコピーまたはアップデートされます。

        オブジェクトをコピーすると、すべてのフィールド値がコピーされることに注意してください。 オブジェクトと子オブジェクト内の設定されていないフィールドは、指定されない場合、デフォルト値に設定されます。

        パラメーター:
        objects - Realm に更新またはコピーするオブジェクトのリスト。
        flags - Realm にデータを挿入する際の動作を変更する任意のフラグ。
        次の値を返します。
        新しいまたはアップデートされたすべての RealmObject のリスト。
        次の例外がスローされます。
        IllegalArgumentException - RealmObject がnullであるか、 または プライマリキーが定義されていない場合。
        以下も参照してください。
        copyToRealm(Iterable, ImportFlag...)
      • copyFromRealm

        public <E extends RealmModelList<E> copyFromRealm​(Iterable<E> realmObjects)
        すでに永続化されている RealmObjects の管理対象外メモリ内コピーを作成します。 これは、参照されているすべてのオブジェクトをコピーするディープ コピーです。

        コピーされたオブジェクトはすべて Realm からデタッチされ、自動的に更新されなくなります。 つまり、コピーされたオブジェクトには、他の管理対象 Realm オブジェクトと整合性がなくなったデータが含まれる可能性があります。

        *WARN: コピーされたオブジェクトへの変更はcopyToRealmOrUpdate(RealmModel, ImportFlag...)を使用して Realm にマージできますが、変更されたフィールドだけでなく、すべてのフィールドが上書きされます。 これには他のオブジェクトへの参照が含まれ、他のスレッドによる変更を上書きする可能性があります。 この動作はImportFlagを使用して変更できます。

        型パラメータ:
        E - オブジェクトの型。
        パラメーター:
        realmObjects - コピーする RealmObjects。
        次の値を返します。
        管理対象の RealmObjects のメモリ内の個別のコピー。
        次の例外がスローされます。
        IllegalArgumentException - RealmObject がアクセスできなくなっているか、 DynamicRealmObjectである場合。
        以下も参照してください。
        copyToRealmOrUpdate(Iterable, ImportFlag...)
      • copyFromRealm

        public <E extends RealmModelList<E> copyFromRealm​(Iterable<E> realmObjects,
                                                            int maxDepth)
        すでに永続化されている RealmObjects の管理対象外メモリ内コピーを作成します。 これは、参照されたすべてのオブジェクトを定義された深度までコピーするディープ コピーです。

        コピーされたオブジェクトはすべて Realm からデタッチされ、自動的に更新されなくなります。 つまり、コピーされたオブジェクトには、他の管理対象 Realm オブジェクトと整合性がなくなったデータが含まれる可能性があります。

        *WARN: コピーされたオブジェクトへの変更はcopyToRealmOrUpdate(Iterable, ImportFlag...)を使用して Realm にマージできますが、変更されたフィールドだけでなく、すべてのフィールドが上書きされます。 これには、 maxDepthに達してnullであっても、他のオブジェクトへの参照が含まれます。 これにより、他のスレッドによる変更が上書きされる可能性もあります。 この動作はImportFlagを使用して変更できます。

        型パラメータ:
        E - オブジェクトの型。
        パラメーター:
        realmObjects - コピーする RealmObjects。
        maxDepth ディープ コピーの - 制限。 この深度以降のすべての参照はnullになります。 開始深度は0です。
        次の値を返します。
        RealmObjects のメモリ内の個別のコピー。
        次の例外がスローされます。
        IllegalArgumentException - maxDepth < 0の場合、RealmObject はアクセスできなくなるか、 DynamicRealmObjectになります。
        以下も参照してください。
        copyToRealmOrUpdate(Iterable, ImportFlag...)
      • copyFromRealm

        public <E extends RealmModel> E copyFromRealm​(E realmObject)
        すでに永続化されているRealmObjectの管理されていないメモリ内コピーを作成します。 これは、参照されているすべてのオブジェクトをコピーするディープ コピーです。

        コピーされたオブジェクトはすべて Realm からデタッチされ、自動的に更新されなくなります。 つまり、コピーされたオブジェクトには、他の管理対象 Realm オブジェクトと整合性がなくなったデータが含まれる可能性があります。

        *WARN: コピーされたオブジェクトへの変更はcopyToRealmOrUpdate(RealmModel, ImportFlag...)を使用して Realm にマージできますが、変更されたフィールドだけでなく、すべてのフィールドが上書きされます。 これには他のオブジェクトへの参照が含まれ、他のスレッドによる変更を上書きする可能性があります。 この動作はImportFlagを使用して変更できます。

        型パラメータ:
        E - オブジェクトの型。
        パラメーター:
        realmObject - コピーするにはRealmObject
        次の値を返します。
        管理されたRealmObjectのメモリ内分離されたコピー。
        次の例外がスローされます。
        IllegalArgumentException - RealmObject がアクセスできなくなっているか、 DynamicRealmObjectである場合。
        以下も参照してください。
        copyToRealmOrUpdate(RealmModel, ImportFlag...)
      • copyFromRealm

        public <E extends RealmModel> E copyFromRealm​(E realmObject,
                                                      int maxDepth)
        すでに永続化されているRealmObjectの管理されていないメモリ内コピーを作成します。 これは、参照されたすべてのオブジェクトを定義された深度までコピーするディープ コピーです。

        コピーされたオブジェクトはすべて Realm からデタッチされ、自動的に更新されなくなります。 つまり、コピーされたオブジェクトには、他の管理対象 Realm オブジェクトと整合性がなくなったデータが含まれる可能性があります。

        *WARN: コピーされたオブジェクトへの変更はcopyToRealmOrUpdate(RealmModel, ImportFlag...)を使用して Realm にマージできますが、変更されたフィールドだけでなく、すべてのフィールドが上書きされます。 これには、 maxDepthに達してnullであっても、他のオブジェクトへの参照が含まれます。 これにより、他のスレッドによる変更が上書きされる可能性もあります。 この動作はImportFlagを使用して変更できます。

        型パラメータ:
        E - オブジェクトの型。
        パラメーター:
        realmObject - コピーするにはRealmObject
        maxDepth ディープ コピーの - 制限。 この深度以降のすべての参照はnullになります。 開始深度は0です。
        次の値を返します。
        管理されたRealmObjectのメモリ内分離されたコピー。
        次の例外がスローされます。
        IllegalArgumentException - maxDepth < 0の場合、RealmObject はアクセスできなくなるか、 DynamicRealmObjectになります。
        以下も参照してください。
        copyToRealmOrUpdate(RealmModel, ImportFlag...)
      • WHERE

        public <E extends RealmModelRealmQuery<E> where​(Class<E> clazz)
        型指定された RealmQuery を返します。これは、この型の特定のオブジェクトに対するクエリに使用できます
        パラメーター:
        clazz - クエリ対象のオブジェクトのクラス。
        次の値を返します。
        型指定された RealmQuery 。このタイプの特定のオブジェクトに対するクエリに使用できます。
        以下も参照してください。
        RealmQuery
      • deleteCheckLister

        public void removeChangeListener​(RealmChangeListener<Realm> listener)
        指定された変更リスナーを削除します。
        パラメーター:
        listener - 削除する変更リスナー。
        次の例外がスローされます。
        IllegalArgumentException - 変更リスナーがnullの場合。
        IllegalStateException - 非ルーパー スレッドからリスナーを削除しようとする場合。
        以下も参照してください。
        RealmChangeListener
      • deleteAllTimeListers

        public void removeAllChangeListeners()
        ユーザー定義のすべての変更リスナーを削除します。
        次の例外がスローされます。
        IllegalStateException - 非ループ スレッドからリスナーを削除しようとする場合。
        以下も参照してください。
        RealmChangeListener
      • 削除

        public void delete​(Class<? extends RealmModel> clazz)
        指定されたクラスのすべてのオブジェクトを Realm から削除します。
        パラメーター:
        clazz - 削除するオブジェクトのクラス。
        次の例外がスローされます。
        IllegalStateException - Realm が閉じられている、または誤ったスレッドから呼び出されている場合。
      • migrateRealm

        public static void migrateRealm​(RealmConfiguration configuration)
                                 throws FileNotFoundException
        指定された RealmConfiguration に関連付けられた移行を手動でトリガーします。 Realm がすでに最新バージョンである場合は、何も行われません。
        パラメーター:
        configuration - RealmConfiguration
        次の例外がスローされます。
        FileNotFoundException - Realm ファイルが存在しない場合。
      • deleteRealm

        public static boolean deleteRealm​(RealmConfiguration configuration)
        Realm ファイルおよび関連する一時ファイルとともに指定されたRealmConfigurationによって指定された関連一時ファイルをファイルシステムから削除します。 ".lock" を持つ一時ファイル 拡張機能は削除されません。

        このメソッドを呼び出す前に、すべての Realm インスタンスを閉じる必要があります。

        警告: 同期された Realm の場合、ユーザーが管理する Realm インスタンスがすべて閉じられても、バックグラウンド スレッド上の内部 Realm インスタンスが閉じられない可能性があります。 これによりIllegalStateExceptionが返されます。 https://github.com/realm/realm-java/issues/5416 の問題を参照してください。

        パラメーター:
        configuration - RealmConfiguration
        次の値を返します。
        false Realm ファイルを削除できなかった場合、。 一時ファイルの削除に失敗しても、戻り値には影響しません。 すべての失敗したファイル削除がログに記録されます。
        次の例外がスローされます。
        IllegalStateException - 他のスレッドまたは他のプロセスで Realm インスタンスが開かれている場合。
      • compactRealm

        public static boolean compactRealm​(RealmConfiguration configuration)
        Realm ファイルを圧縮します。 Realm ファイルには通常、空き領域または未使用の領域が含まれます。 このメソッドは、この空き領域を削除し、ファイル サイズを縮小します。 Realm ファイル内のオブジェクトは影響を受けません。

        このメソッドを呼び出す前にファイルを閉じる必要があります。そうでない場合はfalseが返されます。
        ファイル システムには、少なくとも Realm ファイルのコピー用の空き領域が必要です。
        ファイル操作が失敗した場合、Realm ファイルは影響を受けません。

        パラメーター:
        configuration - Realm ファイルを指すRealmConfiguration
        次の値を返します。
        true 成功した場合は 、ファイル操作が失敗した場合はfalseになります。
      • freeze

        public Realm ()
        現在の Realm の固定スナップショットを返します。 この Realm は、 IllegalStateExceptionをスローすることなく、任意のスレッドから読み取りとクエリを実行できます。 固定された Realm には独自のライフサイクルがあり、 Closeable.close()を呼び出すことで閉じることができますが、固定されたコピーを生成した Realm を完全に閉じると、固定された Realm も閉じられます。

        凍結されたデータは通常どおりクエリできますが、そのデータを何らかの方法で変更しようとしたり、リスナーを登録しようとするとIllegalStateExceptionがスローされます。

        注: 異なるバージョンを持つ多数の Realm を有効にすると、Realm のファイルサイズに悪影響が及ぶ可能性があります。 このような状況を回避するには、 RealmConfiguration.Builder.maxNumberOfActiveVersions(long)を設定します。

        次の値を返します。
        この Realm の固定コピー。
      • getDefaultModule

        @Nullable
        public static Object getDefaultModule()
        デフォルトの Realm モジュールを返します。 このモジュールには、現在のプロジェクト内のすべての Realm クラスが含まれていますが、ライブラリまたはプロジェクトの依存関係からのものではありません。 これらの Realm クラスは、独自のモジュールを使用して公開する必要があります。
        次の値を返します。
        デフォルトの Realm モジュール、またはデフォルト モジュールが存在しない場合はnullを使用します。
        次の例外がスローされます。
        RealmException - モジュールのインスタンスを作成できない場合。
        以下も参照してください。
        RealmConfiguration.Builder.modules(Object, Object...)
      • getグローバルインスタンスカウント

        public static int getGlobalInstanceCount​(RealmConfiguration configuration)
        この構成を使用している現在のプロセス内のすべてのスレッドで開いている Realm インスタンスの現在の数を返します。 これには、動的 Realm と通常の Realm の両方が含まれます。
        パラメーター:
        configuration - Realm のRealmConfiguration
        次の値を返します。
        すべてのスレッドで開いている Realm インスタンスの数。
      • getLocalInstanceCount

        public static int getLocalInstanceCount​(RealmConfiguration configuration)
        このメソッドを呼び出しているスレッドで開いている Realm インスタンスの現在の数を返します。 これには、動的 Realm と通常の Realm の両方が含まれます。
        パラメーター:
        configuration - Realm のRealmConfiguration
        次の値を返します。
        呼び出し元スレッドで開いている Realm インスタンスの数。
      • getApplicationContext

        @Nullable
        public static Context getApplicationContext()
        init(Context)またはinit(Context, String)を使用して Realm を初期化するときに使用されるアプリケーション コンテキストを取得します。
        次の値を返します。
        init(Context)またはinit(Context, String)で Realm を初期化するときに使用されるアプリケーション コンテキスト。Realm がまだ初期化されていない場合は null 。
      • setAutoRefresh

        public void setAutoRefresh​(boolean autoRefresh)
        Realm インスタンスの自動更新ステータスを設定します。

        自動更新は、別のスレッドの同じファイルで動作している Realm でコミットが実行されたときに、現在の Realm インスタンスとそのすべての派生オブジェクト(RealmResults および RealmObject インスタンス)の自動更新を可能にする機能です。 この機能は、Realm インスタンスがLooper有効スレッドで存在する場合にのみ使用できます。

        パラメーター:
        autoRefresh - trueは自動更新をオンにし、 falseは自動更新をオフにします。
        次の例外がスローされます。
        IllegalStateException - 非 ルーター スレッドから呼び出された場合。
      • isAutoRefresh

        公開ブール値 isAutoRefresh()
        Realm インスタンスの自動更新ステータスを取得します。
        次の値を返します。
        自動更新ステータス。
      • refresh

        public void refresh()
        Realm インスタンスと、それから取得されるすべての RealmResults インスタンスおよび RealmObjects インスタンスを更新します。 また、必要に応じて、Realm に関連付けられているリスナーも呼び出します。

        警告: 非同期クエリを使用するスレッドでこれを呼び出すと、それらのクエリは同期クエリに変わります。 つまり、Realm インスタンスを取得するために がRealmException RealmConfiguration.Builder.allowQueriesOnUiThread(boolean)と併用された場合、このメソッドは をスローします。trueほとんどの場合、このメソッドを使用するよりも、 RealmChangeListenerを使用して特定のスレッド上の Realm への変更を通知する方が優れています。

        次の例外がスローされます。
        IllegalStateException - トランザクション内から更新を試みる場合。
        RealmException - RealmConfiguration.Builder.allowQueriesOnUiThread(boolean)経由でオプトアウトした後に UI スレッドから呼び出された場合
      • isInTransaction

        公開ブール値 isInTransaction()
        Realm が現在トランザクションを実行中かどうかを確認します。
        次の値を返します。
        true トランザクション内では、それ以外の場合はfalse
      • writeCopyTo

        public void writeCopyTo​(File destination)
        Realm の圧縮されたコピーを指定された宛先ファイルに書込みます。 結果のファイルを初期データセットとして使用して、他のデバイスでローカルまたは同期された Realm をブートストラップできます。

        宛先ファイルがすでに存在することはできません。

        これがトランザクション内から呼び出されると、最後のトランザクションがコミットされたときのデータではなく、現在のデータが書込まれることに注意してください。

        パラメーター:
        destination Realm を保存する - ファイル。
        次の例外がスローされます。
        IllegalArgumentException - 宛先引数が null の場合。
        RealmFileException - 基礎となる Realm ファイルにアクセスするか、宛先ファイルに書き込むときにエラーが発生した場合。
        IllegalStateException - UI スレッドから呼び出された場合。
        IllegalStateException - すべてのクライアントの変更がサーバーに統合されていない場合。
      • writeEncryptedCopyTo

        public void writeEncryptedCopyTo​(File destination,
                                         byte[] key)
        Realm の圧縮され暗号化されたコピーを指定された宛先ファイルに書込みます。 結果のファイルを初期データセットとして使用して、他のデバイスでローカルまたは同期された Realm をブートストラップできます。

        宛先ファイルがすでに存在することはできません。

        これがトランザクション内から呼び出されると、最後のトランザクションがコミットされたときのデータではなく、現在のデータが書込まれることに注意してください。

        パラメーター:
        destination Realm を保存する - ファイル。
        key - 64 バイトの暗号化のキー。
        次の例外がスローされます。
        IllegalArgumentException - 宛先引数が null の場合。
        RealmFileException - 基礎となる Realm ファイルにアクセスするか、宛先ファイルに書き込むときにエラーが発生した場合。
        IllegalStateException - UI スレッドから呼び出された場合。
        IllegalStateException - すべてのクライアントの変更がサーバーに統合されていない場合。
      • waitForchange

        @非推奨公開ブール値waitForchange ()
        非推奨。
        このメソッドは、次のメジャー リリースで削除されます。
        Realm への新しい変更が利用可能になるまで、またはstopWaitForChange()が別のスレッドから呼び出されるまで、現在のスレッドをブロックします。 stopWaitForchange が呼び出されると、このメソッドへのすべての呼び出しはすぐに false を返します。
        次の値を返します。
        true Realm が最新バージョンに更新されている場合は 、 stopWaitForchange を呼び出してキャンセルされた場合はfalseになります。
        次の例外がスローされます。
        IllegalStateException - トランザクション内または Loader スレッドからこれを呼び出す場合。
        RealmMigrationNeededException - 最新バージョンに互換性のないスキーマ変更が含まれている場合は、 とタイプ しRealm
      • stopWaitForchange

        @Deprecated
        public void stopWaitForChange()
        非推奨。
        このメソッドは次のメジャー リリースで削除されます:
        現在のwaitForChange()falseをすぐに返します。 これが呼び出されると、waitForchange に対するすべての呼び出しによってすぐにfalseが返されます。

        このメソッドはスレッドセーフであり、 waitForchange を呼び出したスレッドとは別のスレッドから _only_ を呼び出す必要があります。

        次の例外がスローされます。
        IllegalStateException - Realmインスタンスがすでに閉じられている場合。
      • startTransaction

        public void beginTransaction()
        トランザクションを開始します。このトランザクションはBaseRealm.commitTransaction()によって閉じられるか、 BaseRealm.cancelTransaction()によって中止される必要があります。 トランザクションは、Realm 内のオブジェクトをアトミックに作成、更新、および削除するために使用されます。

        トランザクションを開始する前に、Realm インスタンスは最新バージョンに更新され、他のスレッドからの変更をすべて含めます。 この更新では、登録されたtrigger RealmChangeListenerは されません。

        したがって、トランザクション内から変更する必要がある項目はクエリで実行されることをお勧めします。 そうしないと、トランザクションの開始時に結果の一部が削除または変更されるリスクがあります。

         
         // Don't do this
         RealmResults<Person> persons = realm.where(Person.class).findAll();
         realm.beginTransaction();
         persons.first().setName("John");
         realm.commitTransaction();
        
         // Do this instead
         realm.beginTransaction();
         RealmResults<Person> persons = realm.where(Person.class).findAll();
         persons.first().setName("John");
         realm.commitTransaction();
         
         

        注: トランザクションをネストすることはできません。 トランザクション内でトランザクションを開始すると、 の例外がスローされます。

        次の例外がスローされます。
        RealmMigrationNeededException - 最新バージョンに互換性のないスキーマ変更が含まれている場合は、 とタイプ しRealm
      • commitTransaction

        public void commitTransaction()
        BaseRealm.beginTransaction()以降のすべての変更はディスクに永続化し、Realm は読み取り専用に戻ります。 変更が発生したことを他のすべての Realm インスタンスに通知するために、 イベントが送信されます。 イベントが受信されると、他の Realm は、このコミットの変更を反映するようにオブジェクトとRealmResultsを更新します。
      • CancelTransaction

        public void cancelTransaction()
        現在の書込みトランザクションで行われたすべての書込み(作成、更新、または削除されたオブジェクト)を元に戻し、トランザクションを終了します。

        Realm が読み取り専用に戻ります。

        トランザクションにない場合にこれを呼び出すと、例外がスローされます。

      • IsFrozen

        公開ブール値 isFrozen()
        この Realm が固定されているかどうかを返します。
        次の値を返します。
        true Realm が固定されている場合は 、固定されていない場合はfalseになります。
        以下も参照してください。
        freeze()
      • getNumberOfActiveVersions

        public long getNumberOfActiveVersions()
        この Realm によって現在保持されているアクティブなバージョンの現在の数を返します。

        アクティブなバージョンの数が多いと、Realm ファイルのサイズに悪影響が生じます。 詳しくは、 FAQを参照してください。

        次の値を返します。
        Realm によって現在保持されているアクティブなバージョンの数。
        以下も参照してください。
        RealmConfiguration.Builder.maxNumberOfActiveVersions(long)
      • getPath

        public string getPath()
        この Realm がディスク上で保存されている場所への標準パスを返します。
        次の値を返します。
        Realm ファイルへの標準パス。
        以下も参照してください。
        File.getCanonicalPath()
      • getVersion

        public long getVersion()
        この Realm のスキーマ バージョンを返します。
        次の値を返します。
        この Realm をバッキングする Realm ファイルのスキーマ バージョン。
      • 閉じる

        public void close()
        Realm インスタンスとそのすべてのリソースを閉じます。

        メモリ、ファイル記述子、Realm ファイルのサイズが異常に大きくならないように、終了したら Realm インスタンスを常に閉じることが重要です。

        次のによって指定されます。
        close 内 インターフェース AutoCloseable
        次のによって指定されます。
        close 内 インターフェース Closeable
        次の例外がスローされます。
        IllegalStateException - 別のスレッドから閉じようとした場合
      • isClosed

        公開ブール値 isClosed()
        Realmインスタンスがすでに閉じられているかどうかを確認します。
        次の値を返します。
        true 閉じている場合はfalse 、閉じている場合は 。
        次の例外がスローされます。
        IllegalStateException - 別のスレッドから閉じようとした場合
      • getSubscriptions

        public SubscriptionSet getSubscriptions()
        この Realm に関連付けられているサブスクリプションセットを返します。 サブスクリプションセットは、この Realm とサーバー間で同期されるデータを定義するクエリのセットを定義します。

        この方法は、フレキシブルな同期を使用して同期された Realm にのみ適用されます。

        次の値を返します。
        このRealmに関連付けられている サブスクリプションセット 。
        次の例外がスローされます。
        IllegalStateException - この Realm がローカル Realm または部分ベースの同期済み Realm のいずれかである場合。
      • deleteAll

        public void deleteAll()
        この Realm からすべてのオブジェクトを削除します。
        次の例外がスローされます。
        IllegalStateException - Realm が閉じられている、または誤ったスレッドから呼び出されている場合。