パッケージ io.realm

クラス RealmObject

  • すべての実装インターフェース:
    io.realm.internal.ManageableObject, RealmModel
    既知のサブクラスを直接:
    DynamicRealmObject

    public abstract class RealmObject
    extends Object
    implements RealmModel, io.realm.internal.ManageableObject
    Realm では、RealmObject をサブクラス化し、永続化するフィールドを追加することで RealmObject クラスを定義します。 次に、Realm 内でオブジェクトを作成し、RealmObject クラスを直接使用する代わりにカスタム サブクラスを使用します。

    注釈プロセッサは、RealmObject サブクラスのプロキシ クラスを作成します。

    次のフィールド データ型がサポートされています。

    • ブール値/ブール値
    • 短い/短い
    • int/Integer
    • long/Long
    • float/Float
    • double / double
    • byte[]
    • 文字列
    • 日付
    • UUID
    • org.bson.types.Decimal128
    • org.bson.types.ObjectId
    • 任意の RealmObject サブクラス
    • RealmList
    • RealmDictionary

    shortintlongの各タイプは、Realm 内に保存するときにlongにマッピングされます。

    RealmObject に課されている唯一の制限事項は、フィールドが最終的または変動的であることは許可されていないことです。 パブリック フィールドと任意のメソッドが許可されます。 カスタム コンストラクターを提供する場合、引数のないパブリック コンストラクターを宣言する必要があります。

    Ignoreで注釈が付けられたフィールドにはこれらの制限はなく、 getter または setter は必要ありません。

    Realm は、 Indexで注釈が付けられたフィールドのインデックスを作成します。 これによりクエリは高速化されますが、挿入と更新には悪影響が生じます。

    RealmObject を異なるスレッド間で渡すことはできません。

    以下も参照してください。
    Realm.createObject(Class), Realm.copyToRealm(RealmModel, ImportFlag...)
    • コンストラクターの概要

      コンストラクター 
      Constructor 説明
      RealmObject()  
    • コンストラクターの詳細

      • RealmObject

        public RealmObject()
    • メソッドの詳細

      • deleteFromRealm

        public final void deleteFromRealm()
        現在関連付けられている Realm からオブジェクトを削除します。

        このメソッドが呼び出された後、 オブジェクトは無効になり、そのオブジェクトに対して実行されるすべての操作(読み取りまたは書込み)は、 IllealStateException で失敗します。

        次の例外がスローされます。
        IllegalStateException - 対応する Realm が閉じているか、誤ったスレッドにある場合。
        以下も参照してください。
        isValid()
      • deleteFromRealm

        public static <E extends RealmModel> void deleteFromRealm​(E object)
        現在関連付けられている Realm からオブジェクトを削除します。

        このメソッドが呼び出された後、 オブジェクトは無効になり、そのオブジェクトに対して実行されるすべての操作(読み取りまたは書込み)は、 IllealStateException で失敗します。

        次の例外がスローされます。
        IllegalStateException - 対応する Realm が閉じているか、誤ったスレッドにある場合。
        以下も参照してください。
        isValid()
      • isValid

        public final boolean isValid()
        RealmObject がまだ を使用するために有効であるかどうか、つまり RealmObject が削除されておらず、 Realmが閉じられていないことを確認します。 管理されていないオブジェクトでは常にtrueが返されます。

        これは、観察された場合にnullであるなど、特定の条件の有効性を確認するために使用できることに注意してください。

         
         realm.where(BannerRealm.class).equalTo("type", type).findFirstAsync().asFlowable()
              .filter(result.isLoaded() && result.isValid())
              .first()
         
         
        次のによって指定されます。
        isValid 内 インターフェース io.realm.internal.ManageableObject
        次の値を返します。
        true オブジェクトがまだアクセス可能であるか、管理されていないオブジェクトである場合は、 false 、それ以外の場合は 。
        以下も参照してください。
        RxJava と Realm を使用する例
      • isValid

        public static <E extends RealmModel> boolean isValid​(@Nullable
                                                             E object)
        RealmObject がまだ を使用するために有効であるかどうか、つまり RealmObject が削除されておらず、 Realmが閉じられていないことを確認します。 管理されていないオブジェクトでは常にtrueが返されます。
        パラメーター:
        object - 有効性を確認する RealmObject。
        次の値を返します。
        true オブジェクトがまだアクセス可能であるか、管理されていないオブジェクトである場合は、 false 、それ以外の場合は 。
      • IsFrozen

        public final boolean isFrozen()
        この RealmObject が固定されているかどうかを返します。
        次のによって指定されます。
        isFrozen 内 インターフェース io.realm.internal.ManageableObject
        次の値を返します。
        true RealmObject が固定されている場合は 、固定されていない場合はfalseになります。
        以下も参照してください。
        freeze()
      • freeze

        public final <E extends RealmModel> E freeze()
        このオブジェクトの固定スナップショットを返します。 固定されたコピーは、 IllegalStateExceptionをスローすることなく、任意のスレッドから読み取りとクエリを実行できます。

        RealmObject を固定すると、独自のライフサイクルを持つ固定 Realm も作成されますが、元のコレクションを生成したライブ Realm が完全に閉じている場合(つまり 全スレッドにわたるすべての インスタンスが閉じられます)。固定された Realm と オブジェクトも閉じられます。

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

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

        次の値を返します。
        このオブジェクトの固定されたコピー。
        次の例外がスローされます。
        IllegalStateException - このメソッドが書込みトランザクション内から呼び出される場合。
      • IsFrozen

        public static <E extends RealmModel> boolean isFrozen​(E object)
        この RealmObject が固定されているかどうかを返します。
        次の値を返します。
        true RealmObject が固定されている場合は 、固定されていない場合はfalseになります。
        以下も参照してください。
        freeze()
      • freeze

        public static <E extends RealmModel> E freeze​(E object)
        このオブジェクトの固定スナップショットを返します。 固定されたコピーは、 IllegalStateExceptionをスローすることなく、任意のスレッドから読み取りとクエリを実行できます。

        RealmObject を固定すると、独自のライフサイクルを持つ固定 Realm も作成されますが、元のコレクションを生成したライブ Realm が完全に閉じている場合(つまり 全スレッドにわたるすべての インスタンスが閉じられます)。固定された Realm と オブジェクトも閉じられます。

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

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

        次の値を返します。
        このオブジェクトの固定されたコピー。
        次の例外がスローされます。
        IllegalStateException - このメソッドが書込みトランザクション内から呼び出される場合。
      • isLoaded

        public final boolean isLoaded()
        この RealmObject を検索するために使用されるクエリが完了しているかどうかを確認します。

        RealmQuery.findFirstAsync()RealmObjectなどの非同期メソッドでは、 の将来の結果を表すRealmQuery が返されます。この点では、 Futureと同様と見なされます。

        isLoaded()trueを返すと、クエリでクエリ パラメータに一致するオブジェクトが見つからなかった場合でも、 オブジェクトはクエリ結果を表します。 この場合、 RealmObjectは「null」オブジェクトになります。

        「Null」オブジェクトはnullを表します。 いずれかのアクセスサーが呼び出された場合は例外がスローされるため、メソッドを呼び出す前にisValid()も確認することが重要です。 一般的なパターンは次のとおりです。

         
         Person person = realm.where(Person.class).findFirstAsync();
         person.isLoaded(); // == false
         person.addChangeListener(new RealmChangeListener() {
              \@Override
              public void onChange(Person person) {
                  person.isLoaded(); // Always true here
                  if (person.isValid()) {
                      // It is safe to access the person.
                  }
              }
         });
         
         

        同期 RealmObject は定義上、このメソッドはそれらに対して常にtrueを返します。 このメソッドは、管理対象ではないオブジェクト(Realm 外で作成)で呼び出されるとtrueを返します。

        次の値を返します。
        true クエリが完了した場合は 、クエリが進行中の場合はfalseになります。
        以下も参照してください。
        isValid()
      • isLoaded

        public static <E extends RealmModel> boolean isLoaded​(E object)
        この RealmObject を検索するために使用されるクエリが完了しているかどうかを確認します。

        RealmQuery.findFirstAsync()RealmObjectなどの非同期メソッドでは、 の将来の結果を表すRealmQuery が返されます。この点では、 Futureと同様と見なされます。

        isLoaded()trueを返すと、クエリでクエリ パラメータに一致するオブジェクトが見つからなかった場合でも、 オブジェクトはクエリ結果を表します。 この場合、 RealmObjectは「null」オブジェクトになります。

        「Null」オブジェクトはnullを表します。 いずれかのアクセスサーが呼び出された場合は例外がスローされるため、メソッドを呼び出す前にisValid()も確認することが重要です。 一般的なパターンは次のとおりです。

         
         Person person = realm.where(Person.class).findFirstAsync();
         RealmObject.isLoaded(person); // == false
         RealmObject.addChangeListener(person, new RealmChangeListener() {
              \@Override
              public void onChange(Person person) {
                  RealmObject.isLoaded(person); // always true here
                  if (RealmObject.isValid(person)) {
                      // It is safe to access the person.
                  }
              }
         });
         
         

        同期 RealmObject は定義上、このメソッドはそれらに対して常にtrueを返します。 このメソッドは、管理対象ではないオブジェクト(Realm 外で作成)で呼び出されるとtrueを返します。

        パラメーター:
        object - 確認する RealmObject。
        次の値を返します。
        true クエリが完了した場合は 、クエリが進行中の場合はfalseになります。
        以下も参照してください。
        isValid(RealmModel)
      • isManaged

        公開ブール値 isManaged()
        このオブジェクトが Realm によって管理されているかどうかを確認します。 管理対象オブジェクトは、基礎となる Realm ファイル内のデータを囲むラッパーに相当します。 ルーパー スレッドでは、管理対象のオブジェクトがライブアップデートされるため、常に最新データを参照します。 addChangeListener(RealmChangeListener)を使用して変更リスナーを登録し、変更が発生したときに通知を受けることができます。 管理されたオブジェクトはスレッド制限され、作成されたオブジェクト以外の他のスレッドからはアクセスできません。

        このメソッドがfalseを返す場合、オブジェクトは管理されていません。 管理されていない オブジェクトは通常の Java オブジェクトであるため、スレッド間で自由に解析できますが、オブジェクト内のデータは基礎となる Realm に接続されていないため、ライブ更新はされません。

        Realm.copyToRealm(RealmModel, ImportFlag...)を使用して、非管理オブジェクトから管理対象オブジェクトを作成することができます。 管理されていないオブジェクトは、 Realm.copyFromRealm(RealmModel)を使用して管理対象オブジェクトから作成できます。

        次のによって指定されます。
        isManaged 内 インターフェース io.realm.internal.ManageableObject
        次の値を返します。
        true オブジェクトが管理されている場合は 、管理されていない場合はfalseになります。
      • isManaged

        public static <E extends RealmModel> boolean isManaged​(E object)
        このオブジェクトが Realm によって管理されているかどうかを確認します。 管理対象オブジェクトは、基礎となる Realm ファイル内のデータを囲むラッパーに相当します。 ルーパー スレッドでは、管理対象のオブジェクトがライブアップデートされるため、常に最新データを参照します。 addChangeListener(RealmModel, RealmChangeListener)を使用して変更リスナーを登録し、変更が発生したときに通知を受けることができます。 管理されたオブジェクトはスレッド制限され、作成されたオブジェクト以外の他のスレッドからはアクセスできません。

        このメソッドがfalseを返す場合、オブジェクトは管理されていません。 管理されていない オブジェクトは通常の Java オブジェクトであるため、スレッド間で自由に解析できますが、オブジェクト内のデータは基礎となる Realm に接続されていないため、ライブ更新はされません。

        Realm.copyToRealm(RealmModel, ImportFlag...)を使用して、非管理オブジェクトから管理対象オブジェクトを作成することができます。 管理されていないオブジェクトは、 Realm.copyFromRealm(RealmModel)を使用して管理対象オブジェクトから作成できます。

        次の値を返します。
        true オブジェクトが管理されている場合は 、管理されていない場合はfalseになります。
      • getRealm

        public Realm getRealm()
        Realmこの が属するRealmObject インスタンスを返します。

        返されたインスタンスに対してCloseable.close() を呼び出し ないでください 。

        次の値を返します。
        Realmこのオブジェクトが属するnull インスタンス、またはこのオブジェクトが管理されていない場合は インスタンス。
        次の例外がスローされます。
        IllegalStateException - このオブジェクトがDynamicRealmObjectのインスタンスであるか、このオブジェクトがすでに削除されているか、対応するRealmがすでに閉じられている場合。
      • getRealm

        public static Realm getRealm​(RealmModel model)
        は、 modelが属するRealmインスタンスを返します。

        返されたインスタンスに対してCloseable.close() を呼び出し ないでください 。

        パラメーター:
        model - 以外のRealmModel DynamicRealmObjectインスタンス
        次の値を返します。
        が属するRealm modelインスタンス、またはnull が管理されていない場合は インスタンス。model
        次の例外がスローされます。
        IllegalArgumentException - modelnullの場合。
        IllegalStateException - modelDynamicRealmObjectのインスタンスであるか、このオブジェクトがすでに削除されているか、対応するRealmがすでに閉じられている場合。
      • 負荷

        public final boolean load()
        非同期クエリ ブロックを作成します。 これにより、登録されているリスナーもtriggerされます。

        注: 非管理対象オブジェクト(Realm 外で作成)に対して呼び出されるとtrueが返されます。

        次の値を返します。
        true クエリが正常に完了した場合は、 false 、そうでない場合は になります。
      • 負荷

        public static <E extends RealmModel> boolean load​(E object)
        非同期クエリ ブロックを作成します。 これにより、登録されているリスナーもtriggerされます。

        注: 非管理対象オブジェクト(Realm 外で作成)に対して呼び出されるとtrueが返されます。

        パラメーター:
        object - 負荷を強制するための RealmObject。
        次の値を返します。
        true クエリが正常に完了した場合は、 false 、そうでない場合は になります。
      • addchangeLister

        public final <E extends RealmModel> void addChangeListener​(RealmObjectChangeListener<E> listener)
        この RealmObject に 変更リスナー を追加して、変更に関する詳細情報を取得します。 リスナーは、値フィールドまたは参照された RealmObject フィールドが変更された場合、または RealmList フィールド自体が変更された場合にトリガーされます。

        変更リスナーを登録しても、基礎となる RealmObject がガベージされるのを防ぐものではありません。 RealmObject がガベージ コレクションされると、変更リスナーはトリガーされなくなります。 これを回避するには、クラス変数内で適切な例がある限り、強力な参照を保持します。

         
         public class MyActivity extends Activity {
        
             private Person person; // Strong reference to keep listeners alive
        
             \@Override
             protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               person = realm.where(Person.class).findFirst();
               person.addChangeListener(new RealmObjectChangeListener<Person>() {
                   \@Override
                   public void onChange(Person person, ObjectChangeSet changeSet) {
                       // React to change
                   }
               });
             }
         }
         
         
        パラメーター:
        listener - 通知される変更リスナー。
        次の例外がスローされます。
        IllegalArgumentException - 変更リスナーがnullであるか、 オブジェクトが非管理オブジェクトである場合。
        IllegalStateException - 非 loader またはIntentServiceスレッドからリスナーを追加しようとする場合。
        IllegalStateException - トランザクション内にリスナーを追加しようとする場合。
      • addchangeLister

        public final <E extends RealmModel> void addChangeListener​(RealmChangeListener<E> listener)
        この RealmObject に、値フィールドまたは参照先の RealmObject フィールドが変更された場合、または RealmList フィールド自体が変更された場合にトリガーされる 変更リスナー を追加します。

        変更リスナーを登録しても、基礎となる RealmObject がガベージされるのを防ぐものではありません。 RealmObject がガベージ コレクションされると、変更リスナーはトリガーされなくなります。 これを回避するには、クラス変数内で適切な例がある限り、強力な参照を保持します。

         
         public class MyActivity extends Activity {
        
             private Person person; // Strong reference to keep listeners alive
        
             \@Override
             protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               person = realm.where(Person.class).findFirst();
               person.addChangeListener(new RealmChangeListener<Person>() {
                   \@Override
                   public void onChange(Person person) {
                       // React to change
                   }
               });
             }
         }
         
         
        パラメーター:
        listener - 通知される変更リスナー。
        次の例外がスローされます。
        IllegalArgumentException - 変更リスナーがnullであるか、 オブジェクトが非管理オブジェクトである場合。
        IllegalStateException - 非 loader またはIntentServiceスレッドからリスナーを追加しようとする場合。
        IllegalStateException - トランザクション内にリスナーを追加しようとする場合。
      • addchangeLister

        public static <E extends RealmModel> void addChangeListener​(E object,
                                                                    RealmObjectChangeListener<E> listener)
        RealmObject に 変更リスナー を追加して、変更に関する詳細情報を取得します。 リスナーは、値フィールドまたは参照された RealmObject フィールドが変更された場合、または RealmList フィールド自体が変更された場合にトリガーされます。

        変更リスナーを登録しても、基礎となる RealmObject がガベージされるのを防ぐものではありません。 RealmObject がガベージ コレクションされると、変更リスナーはトリガーされなくなります。 これを回避するには、クラス変数内で適切な例がある限り、強力な参照を保持します。

         
         public class MyActivity extends Activity {
        
             private Person person; // Strong reference to keep listeners alive
        
             \@Override
             protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               person = realm.where(Person.class).findFirst();
               person.addChangeListener(new RealmObjectChangeListener<Person>() {
                   \@Override
                   public void onChange(Person person, ObjectChangeSet changeSet) {
                       // React to change
                   }
               });
             }
         }
         
         
        パラメーター:
        object - リスナーを追加する RealmObject。
        listener - 通知される変更リスナー。
        次の例外がスローされます。
        IllegalArgumentException - objectnullまたは非管理オブジェクトである場合、または変更リスナーがnullの場合。
        IllegalStateException - 非 loader またはIntentServiceスレッドからリスナーを追加しようとする場合。
        IllegalStateException - トランザクション内にリスナーを追加しようとする場合。
      • addchangeLister

        public static <E extends RealmModel> void addChangeListener​(E object,
                                                                    RealmChangeListener<E> listener)
        値フィールドまたは参照された RealmObject フィールドが変更された場合、または RealmList フィールド自体が変更された場合にトリガーされる変更リスナーを RealmObject に追加します。

        変更リスナーを登録しても、基礎となる RealmObject がガベージされるのを防ぐものではありません。 RealmObject がガベージ コレクションされると、変更リスナーはトリガーされなくなります。 これを回避するには、クラス変数内で適切な例がある限り、強力な参照を保持します。

         
         public class MyActivity extends Activity {
        
             private Person person; // Strong reference to keep listeners alive
        
             \@Override
             protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               person = realm.where(Person.class).findFirst();
               person.addChangeListener(new RealmChangeListener<Person>() {
                   \@Override
                   public void onChange(Person person) {
                       // React to change
                   }
               });
             }
         }
         
         
        パラメーター:
        object - リスナーを追加する RealmObject。
        listener - 通知される変更リスナー。
        次の例外がスローされます。
        IllegalArgumentException - objectnullまたは非管理オブジェクトである場合、または変更リスナーがnullの場合。
        IllegalStateException - 非 loader またはIntentServiceスレッドからリスナーを追加しようとする場合。
        IllegalStateException - トランザクション内にリスナーを追加しようとする場合。
      • deleteCheckLister

        public final void removeChangeListener​(RealmObjectChangeListener listener)
        以前に登録されたリスナーを削除します。
        パラメーター:
        listener - 削除する インスタンス。
        次の例外がスローされます。
        IllegalArgumentException - 変更リスナーがnullであるか、 オブジェクトが非管理オブジェクトである場合。
        IllegalStateException - 非ルーパー スレッドからリスナーを削除しようとする場合。
      • deleteCheckLister

        public final void removeChangeListener​(RealmChangeListener listener)
        以前に登録されたリスナーを削除します。
        パラメーター:
        listener - 削除する インスタンス。
        次の例外がスローされます。
        IllegalArgumentException - 変更リスナーがnullであるか、 オブジェクトが非管理オブジェクトである場合。
        IllegalStateException - 非ルーパー スレッドからリスナーを削除しようとする場合。
      • deleteCheckLister

        public static <E extends RealmModel> void removeChangeListener​(E object,
                                                                       RealmObjectChangeListener listener)
        指定された RealmObject に以前に登録されたリスナーを削除します。
        パラメーター:
        object - リスナーから削除する RealmObject。
        listener - 削除する インスタンス。
        次の例外がスローされます。
        IllegalArgumentException - objectまたは変更リスナーがnullの場合。
        IllegalArgumentException - オブジェクトが管理されていない RealmObject の場合。
        IllegalStateException - 非ルーパー スレッドからリスナーを削除しようとする場合。
      • deleteCheckLister

        public static <E extends RealmModel> void removeChangeListener​(E object,
                                                                       RealmChangeListener<E> listener)
        指定された RealmObject に以前に登録されたリスナーを削除します。
        パラメーター:
        object - リスナーから削除する RealmObject。
        listener - 削除する インスタンス。
        次の例外がスローされます。
        IllegalArgumentException - objectまたは変更リスナーがnullの場合。
        IllegalArgumentException - オブジェクトが管理されていない RealmObject の場合。
        IllegalStateException - 非ルーパー スレッドからリスナーを削除しようとする場合。
      • deleteAllTimeListers

        public final void removeAllChangeListeners()
        登録されたすべてのリスナーを削除します。
      • deleteAllTimeListers

        public static <E extends RealmModel> void removeAllChangeListeners​(E object)
        指定された RealmObject から登録されたすべてのリスナーを削除します。
        パラメーター:
        object - すべてのリスナーを削除する RealmObject。
        次の例外がスローされます。
        IllegalArgumentException - オブジェクトがnullであるか、Realm によって管理されていない場合。
      • asFlowable

        public final <E extends RealmObjectFlowable<E> asFlowable()
        この RealmObject への変更を監視する RxJava フロー可能を返します。 サブスクライブすると、現在のオブジェクトが発行されます。 RealmObject が更新されると、オブジェクトの更新が継続的に発行されます - onCompleteは呼び出されません。

        RealmObject フローを連鎖させる場合、 obj.<MyRealmObjectClass>asFlowable()を使用して型情報を渡します。それ以外の場合、次の観察可能な値の型はRealmObjectになります。

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

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

        obj.asFlowable() .observeOn(Schedulers.computation()) .map((rxObj) -> doExpensiveWork(rxObj)) .observeOn(AndroidSchedulers.mainThread()) .subscribe( ... );

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

         
         obj.asFlowable()
              .filter(obj -> obj.isLoaded())
              .first()
              .subscribe( ... ) // You only get the object once
         
         

        型パラメータ:
        E - 監視されている RealmObject クラス。 このクラスまたはそのスーパータイプである必要があります。
        次の値を返します。
        RxJava Observable はonNextのみを呼び出します。 onCompleteまたはOnErrorは呼び出されません。
        次の例外がスローされます。
        UnsupportedOperationException - 必要な RxJava フレームワークがクラスパスにない場合、または対応する Realm インスタンスが RxJava をサポートしていない場合。
        IllegalStateException - Realm が Double スレッドで開かれていない場合。
        以下も参照してください。
        RxJava と Realm
      • as変更セットObservable

        public final <E extends RealmObjectObservable<ObjectChange<E>> asChangesetObservable()
        この RealmObject への変更を監視する Rx Observable を返します。 サブスクライブすると、現在の RealmObject が発行されます。 RealmObject への更新ごとに、RealmObject とObjectChangeSetで構成されるペアが送信されます。 RealmObject が初めて発行されるときに、変更セットはnullになります。

        RealmObject は更新されるたびに継続的に出力されます。 onCompleteは呼び出されません。

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

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

        obj.asChangesetObservable() .observeOn(Schedulers.computation()) .map((rxObj, changes) -> doExpensiveWork(rxObj, changeså)) .observeOn(AndroidSchedulers.mainThread()) .subscribe( ... );

        次の値を返します。
        RxJava Observable はonNextのみを呼び出します。 onCompleteまたはOnErrorは呼び出されません。
        次の例外がスローされます。
        UnsupportedOperationException - 必要な RxJava フレームワークがクラスパスにない場合、または対応する Realm インスタンスが RxJava をサポートしていない場合。
        IllegalStateException - Realm が Double スレッドで開かれていない場合。
        以下も参照してください。
        RxJava と Realm
      • asFlowable

        public static <E extends RealmModelFlowable<E> asFlowable​(E object)
        この RealmObject への変更を監視する RxJava フロー可能を返します。 サブスクライブすると、現在のオブジェクトが発行されます。 RealmObject が更新されると、オブジェクトの更新が継続的に発行されます - onCompleteは呼び出されません。

        RealmObject Observable を連鎖させる場合、 obj.<MyRealmObjectClass>asFlowable()を使用して型情報を渡します。それ以外の場合、次の観察可能な値の型はRealmObjectになります。

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

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

        obj.asFlowable() .observeOn(Schedulers.computation()) .map((rxObj) -> doExpensiveWork(rxObj)) .observeOn(AndroidSchedulers.mainThread()) .subscribe( ... );

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

         
         obj.asFlowable()
              .filter(obj -> obj.isLoaded())
              .first()
              .subscribe( ... ) // You only get the object once
         
         
        パラメーター:
        object - 監視されている RealmObject クラス。 このクラスまたはそのスーパータイプである必要があります。
        次の値を返します。
        RxJava Observable はonNextのみを呼び出します。 onCompleteまたはOnErrorは呼び出されません。
        次の例外がスローされます。
        UnsupportedOperationException - 必要な RxJava フレームワークがクラスパスにない場合。
        IllegalStateException - Realm が Double スレッドで開かれていない場合。
        以下も参照してください。
        RxJava と Realm
      • as変更セットObservable

        public static <E extends RealmModelObservable<ObjectChange<E>> asChangesetObservable​(E object)
        この RealmObject への変更を監視する Rx Observable を返します。 サブスクライブすると、現在の RealmObject が発行されます。 RealmObject への更新ごとに、RealmObject とObjectChangeSetで構成されるペアが送信されます。 RealmObject が初めて発行されるときに、変更セットはnullになります。

        RealmObject は更新されるたびに継続的に出力されます。 onCompleteは呼び出されません。

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

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

        obj.asChangesetObservable() .observeOn(Schedulers.computation()) .map((rxObj, changes) -> doExpensiveWork(rxObj, changeså)) .observeOn(AndroidSchedulers.mainThread()) .subscribe( ... );

        パラメーター:
        object - 監視されている RealmObject クラス。 このクラスまたはそのスーパータイプである必要があります。
        次の値を返します。
        RxJava Observable はonNextのみを呼び出します。 onCompleteまたはOnErrorは呼び出されません。
        次の例外がスローされます。
        UnsupportedOperationException - 必要な RxJava フレームワークがクラスパスにない場合、または対応する Realm インスタンスが RxJava をサポートしていない場合。
        IllegalStateException - Realm が Double スレッドで開かれていない場合。
        以下も参照してください。
        RxJava と Realm