パッケージ io.realm

クラス RealmList<E>

  • 型パラメータ:
    E - リスト内のオブジェクトのクラス。
    すべての実装インターフェース:
    io.realm.internal.Freezable<RealmCollection<E>>, io.realm.internal.ManageableObject, OrderedRealmCollection<E>, RealmCollection<E>, Iterable<E>, Collection<E>, List<E>

    public class RealmList<E>
    extends AbstractList<E>
    implements OrderedRealmCollection<E>
    RealmList は、 RealmObjectの 1 対多の関係をモデル化するために使用されます。 RealmList には、管理モードと非管理モードの 2 つのモードがあります。 管理モードでは、すべてのオブジェクトは Realm 内に保存されますが、非管理モードでは通常の ArrayList として機能します。

    管理された Realm リストを作成できるのは Realm のみです。 管理対象の Realmlist は、基礎の Realm が更新されるたびにコンテンツを自動的に更新します。このものにアクセスするには、 RealmObjectの getter を使用する必要があります。

    管理されていない Realmlist はユーザーによって作成され、管理されている Realm オブジェクトと管理されていない RealmObject の両方を含めることができます。 これは、GSON などの JSON のデシリアライズや、クラスに値を挿入するその他のフレームワークを処理する場合に便利です。 このリスト内の管理されていない要素は、 Realm.copyToRealm(Iterable, ImportFlag...)メソッドを使用して Realm に追加できます。

    RealmListにはInteger.MAX_VALUEより多くの要素を含めることができます。 その場合、アクセスできるのは最初のInteger.MAX_VALUE要素のみです。

    • フィールドの詳細

      • baseRealm

        public final io.realm.BaseRealm baseRealm
        このリストが存在するBaseRealmインスタンス。

        警告: このフィールドは内部使用でのみ公開されており、使用しないでください。

    • コンストラクターの詳細

      • RealmList

        public RealmList()
        要素は Realm によって制御されていない非管理モードで RealmList を作成します。 これにより、RealmList 関数は実質的にArrayListになり、この状態のオブジェクトをクエリすることはできなくなります。

        Realm.copyToRealm(Iterable, ImportFlag...)を使用して、その要素を Realm で適切に永続化します。

      • RealmList

        public RealmList ( E ... オブジェクト)
        要素の初期リストを含む非マネージド モードで RealmList を作成します。 非管理モードの RealmList はArrayListとして関数され、この状態のオブジェクトをクエリすることはできません。

        Realm 内のすべての非マネージド要素を適切に永続化するには、 Realm.copyToRealm(Iterable, ImportFlag...)を使用します。

        パラメーター:
        objects - リスト内の初期オブジェクト。
    • メソッドの詳細

      • isValid

        公開ブール値 isValid()
        コレクションがまだ使用可能かどうか、つまり、 Realmインスタンスが閉じられていないかどうかを確認します。 管理されていないコレクションでは常にtrueが返されます。
        次のによって指定されます。
        isValid 内 インターフェース io.realm.internal.ManageableObject
        次のによって指定されます。
        isValid 内 インターフェース RealmCollection<E>
        次の値を返します。
        true または管理されていないコレクションを使用するためにまだ有効な場合は 、それ以外の場合はfalseです。
      • freeze

        public RealmList<E> freeze()
        次のによって指定されます。
        freeze 内 インターフェース io.realm.internal.Freezable<E>
      • IsFrozen

        公開ブール値 isFrozen()
        次のによって指定されます。
        isFrozen 内 インターフェース io.realm.internal.ManageableObject
      • isManaged

        公開ブール値 isManaged()
        コレクションが Realm によって管理されているかどうかを確認します。 マネージド コレクションは、基礎となる Realm ファイル内のデータを囲むラッパーに相当します。 ルーパー スレッドでは、管理対象のコレクションがライブアップデートされるため、常に最新データを参照します。 管理されたコレクションはスレッド制限されており、それを作成したコレクション以外のスレッドからはアクセスできません。

        このメソッドがfalseを返す場合、コレクションは管理されていません。 管理されていないコレクションは通常の Java コレクションであるため、ライブ更新はされません。

        次のによって指定されます。
        isManaged 内 インターフェース io.realm.internal.ManageableObject
        次のによって指定されます。
        isManaged 内 インターフェース RealmCollection<E>
        次の値を返します。
        true これが管理対象のRealmCollectionである場合は 、それ以外の場合はfalseです。
      • add

        public void add​(int location,
                        @Nullable
                        E element)
        指定されたオブジェクトを指定された場所にあるこのリストに挿入します。 オブジェクトは、指定された場所にある前の要素の前に挿入されます。 場所がこのリストのサイズと等しい場合、オブジェクトは末尾に追加されます。
        1. 非管理の Realmlist : 管理対象と非管理の両方のオブジェクトを追加できます。 管理対象のオブジェクトを管理されていない RealmList に追加した場合、その後にRealm.copyToRealm(RealmModel, ImportFlag...)を使用すると、再度 Realm にコピーされることはありません。
        2. 管理対象 RealmList : すでに管理されている RealmList に管理されていないオブジェクトを追加できます。 この場合、プライマリキーがある場合は、 Realm.copyToRealm(RealmModel, ImportFlag...)またはRealm.copyToRealmOrUpdate(RealmModel, ImportFlag...)を使用してオブジェクトは Realm に透過的にコピーされます。
        次のによって指定されます。
        add 内 インターフェース List<E>
        上書き:
        add クラス内 AbstractList<E>
        パラメーター:
        location - 挿入するインデックス。
        element - 追加する要素。
        次の例外がスローされます。
        IllegalStateException - Realm インスタンスが閉じられているか、コンテナ オブジェクトが削除されている場合。
        IndexOutOfBoundsException - location < 0 || location > size()の場合。
      • add

        公開ブール値追加( @Nullable Eオブジェクト)
        指定したオブジェクトをこのリストの末尾に追加します。
        1. 非管理の Realmlist : 管理対象と非管理の両方のオブジェクトを追加できます。 管理対象のオブジェクトを管理されていない RealmList に追加した場合、その後にRealm.copyToRealm(RealmModel, ImportFlag...)を使用すると、再度 Realm にコピーされることはありません。
        2. 管理対象 RealmList : すでに管理されている RealmList に管理されていないオブジェクトを追加できます。 この場合、プライマリキーがある場合は、 Realm.copyToRealm(RealmModel, ImportFlag...)またはRealm.copyToRealmOrUpdate(RealmModel, ImportFlag...)を使用してオブジェクトは Realm に透過的にコピーされます。
        次のによって指定されます。
        add 内 インターフェース Collection<E>
        次のによって指定されます。
        add 内 インターフェース List<E>
        上書き:
        add クラス内 AbstractList<E>
        パラメーター:
        object - 追加するオブジェクト。
        次の値を返します。
        は常にtrueです。
        次の例外がスローされます。
        IllegalStateException - Realm インスタンスが閉じられているか、親オブジェクトが削除されている場合。
      • セット

        パブリックEセット (int ロケーション、 @Nullable Eオブジェクト)
        このリスト内の指定された場所にある要素を指定されたオブジェクトで置き換えます。
        1. 非管理の Realmlist : 管理対象と非管理の両方のオブジェクトを追加できます。 管理対象のオブジェクトを管理されていない RealmList に追加した場合、その後にRealm.copyToRealm(RealmModel, ImportFlag...)を使用すると、再度 Realm にコピーされることはありません。
        2. 管理対象 RealmList : すでに管理されている RealmList に管理されていないオブジェクトを追加できます。 この場合、プライマリキーがある場合は、 Realm.copyToRealm(RealmModel, ImportFlag...)またはRealm.copyToRealmOrUpdate(RealmModel, ImportFlag...)を使用してオブジェクトは Realm に透過的にコピーされます。
        次のによって指定されます。
        set 内 インターフェース List<E>
        上書き:
        set クラス内 AbstractList<E>
        パラメーター:
        location - 指定されたオブジェクトを配置するインデックス。
        object - 追加するオブジェクト。
        次の値を返します。
        インデックスにある前の要素。
        次の例外がスローされます。
        IllegalStateException - Realm インスタンスが閉じられているか、親オブジェクトが削除されている場合。
        IndexOutOfBoundsException - location < 0 || location >= size()の場合。
      • move

        public void move​(int oldPos,
                         int newPos)
        固定サイズのリストを維持しながら、オブジェクトをある位置から別の位置に移動します。 RealmObject はシフトされ、 null値は導入されません。
        パラメーター:
        oldPos - 移動する RealmObject のインデックス。
        newPos - ターゲット位置。 newPos が oldPos より小さい場合、ロケーションにあるオブジェクトは右に移動されます。 oldPos oldPos は左側に 1 回シフトされます。
        次の例外がスローされます。
        IllegalStateException - Realm インスタンスが閉じられているか、親オブジェクトが削除されている場合。
        IndexOutOfBoundsException - いずれかの位置が [0, size()] の外部にある場合。
      • クリア

        public void clear()
        このリストからすべての要素を削除し、空にします。 このメソッドは、Realm からオブジェクトを削除しません。
        次のによって指定されます。
        clear 内 インターフェース Collection<E>
        次のによって指定されます。
        clear 内 インターフェース List<E>
        上書き:
        clear クラス内 AbstractList<E>
        次の例外がスローされます。
        IllegalStateException - Realm インスタンスが閉じられているか、親オブジェクトが削除されている場合。
        以下も参照してください。
        List.isEmpty(), List.size(), deleteAllFromRealm()
      • delete

        public E delete (int local)
        指定した場所にあるオブジェクトをこのリストから削除します。
        次のによって指定されます。
        remove 内 インターフェース List<E>
        上書き:
        remove クラス内 AbstractList<E>
        パラメーター:
        location - 削除するオブジェクトのインデックス。
        次の値を返します。
        削除されたオブジェクト。
        次の例外がスローされます。
        IllegalStateException - Realm インスタンスが閉じられているか、親オブジェクトが削除されている場合。
        IndexOutOfBoundsException - location < 0 || location >= size()の場合。
      • delete

        public ブール値の削除( @Nullable Object object)
        指定されたオブジェクトの 1 つのインスタンスが含まれている場合は、このCollectionから 1 つのインスタンスを削除します。 この実装では、このCollectionを反復処理し、イテレータによって返される各要素eをテストし、 eが指定されたオブジェクトと等しいかどうかを確認します。 object != nullの場合、このテストはobject.equals(e)を使用して実行され、それ以外の場合はobject == nullを使用します。 指定されたオブジェクトと等しい要素が見つかった場合、イテレータ上でremoveメソッドが呼び出され、 trueが返されます(それ以外の場合はfalse 。 イテレータが要素の削除をサポートしていない場合、 UnsupportedOperationExceptionがスローされます。
        次のによって指定されます。
        remove 内 インターフェース Collection<E>
        次のによって指定されます。
        remove 内 インターフェース List<E>
        上書き:
        remove クラス内 AbstractCollection<E>
        パラメーター:
        object - 削除するオブジェクト。
        次の値を返します。
        true このCollectionが変更されている場合は 、それ以外の場合はfalseになります。
        次の例外がスローされます。
        ClassCastException - 渡されたオブジェクトが正しい型でない場合。
        NullPointerException - objectnullの場合。
      • すべて削除

        public boolean removeAll​(Collection<?> collection)
        指定されたCollection内の各オブジェクトのこのCollection内のすべての発生を削除します。 このメソッドが渡されたCollection内のどの要素も返さない後、このCollectionでは見つからなくなります。

        この実装ではCollectionを反復処理し、イテレータによって返される各要素eをテストし、指定されたCollectionに含まれているかどうかをテストします。 このテストが正の場合、 removeメソッドがイテレータで呼び出されます。

        次のによって指定されます。
        removeAll 内 インターフェース Collection<E>
        次のによって指定されます。
        removeAll 内 インターフェース List<E>
        上書き:
        removeAll クラス内 AbstractCollection<E>
        パラメーター:
        collection - 削除するオブジェクトのコレクション。
        次の値を返します。
        true このCollectionが変更されている場合は 、それ以外の場合はfalseになります。
        次の例外がスローされます。
        ClassCastException - collectionの 1 つ以上の要素が正しいタイプでない場合。
        NullPointerException - collectionnullの場合。
      • deleteFirstFromRealm

        公開ブール値の deleteFirstFromRealm()
        Realm から最初のオブジェクトを削除します。 これにより、このコレクションからそのファイルも削除されます。
        次のによって指定されます。
        deleteFirstFromRealm 内 インターフェース OrderedRealmCollection<E>
        次の値を返します。
        true オブジェクトが削除された場合は 、それ以外の場合はfalse
      • deleteLastFromRealm

        公開ブール値の deleteLastFromRealm()
        Realm から最後のオブジェクトを削除します。 これにより、このコレクションからそのファイルも削除されます。
        次のによって指定されます。
        deleteLastFromRealm 内 インターフェース OrderedRealmCollection<E>
        次の値を返します。
        true オブジェクトが削除された場合は 、それ以外の場合はfalse
      • 得る

        @Nullable public E get (intlocation)
        このリスト内の指定された場所にある要素を返します。
        次のによって指定されます。
        get 内 インターフェース List<E>
        次のによって指定されます。
        get クラス内 AbstractList<E>
        パラメーター:
        location - 返す要素のインデックス。
        次の値を返します。
        指定されたインデックスの要素。
        次の例外がスローされます。
        IllegalStateException - Realm インスタンスが閉じられているか、親オブジェクトが削除されている場合。
        IndexOutOfBoundsException - location < 0 || location >= size()の場合。
      • 最初に

        @Nullable public E first()
        コレクションから最初のオブジェクトを取得します。
        次のによって指定されます。
        first 内 インターフェース OrderedRealmCollection<E>
        次の値を返します。
        最初のオブジェクト。
      • 最初に

        @NullableパブリックEファースト( @Nullable E defaultValue)
        コレクションから最初のオブジェクトを取得します。 コレクションが空の場合は、指定されたデフォルトが代わりに使用されます。
        次のによって指定されます。
        first 内 インターフェース OrderedRealmCollection<E>
        次の値を返します。
        最初のオブジェクトまたは指定されたデフォルトの 。
      • last

        @Nullable public E last()
        コレクションから最後のオブジェクトを取得します。
        次のによって指定されます。
        last 内 インターフェース OrderedRealmCollection<E>
        次の値を返します。
        最後のオブジェクト。
      • last

        @Nullable public E last( @Nullable E defaultValue)
        コレクションから最後のオブジェクトを取得します。 コレクションが空の場合は、指定されたデフォルトが代わりに使用されます。
        次のによって指定されます。
        last 内 インターフェース OrderedRealmCollection<E>
        次の値を返します。
        最後の オブジェクトまたは指定されたデフォルトの 。
      • sort

        public RealmResults<E> sort​(String fieldName)
        指定された フィールドに基づいてコレクションを昇順でソートします。
        次のによって指定されます。
        sort 内 インターフェース OrderedRealmCollection<E>
        パラメーター:
        fieldName - 並べ替えるフィールド名。 ブール値、短縮、int、long、float、double、Date、string 型のフィールドのみがサポートされます。
        次の値を返します。
        新しいソートされたRealmResultsが作成され、返されます。 元のコレクションは変更されません。
      • sort

        public RealmResults<E> sort​(String fieldName,
                                    Sort sortOrder)
        指定されたフィールドとソート順序に基づいてコレクションをソートします。
        次のによって指定されます。
        sort 内 インターフェース OrderedRealmCollection<E>
        パラメーター:
        fieldName - 並べ替えるフィールド名。 ブール値、短縮、int、long、float、double、Date、string 型のフィールドのみがサポートされます。
        sortOrder - 並べ替える方向。
        次の値を返します。
        新しいソートされたRealmResultsが作成され、返されます。 元のコレクションは変更されません。
      • sort

        public RealmResults<E> sort​(String fieldName1,
                                    Sort sortOrder1,
                                    String fieldName2,
                                    Sort sortOrder2)
        指定されたフィールドとソート順序に基づいてコレクションをソートします。
        次のによって指定されます。
        sort 内 インターフェース OrderedRealmCollection<E>
        パラメーター:
        fieldName1 - 最初のフィールド名。 ブール値、短縮、int、long、float、double、Date、string 型のフィールドのみがサポートされます。
        sortOrder1 - 最初のフィールドのソート順。
        fieldName2 - 2 番目のフィールド名。 ブール値、短縮、int、long、float、double、Date、string 型のフィールドのみがサポートされます。
        sortOrder2 - 2 番目のフィールドのソート順序。
        次の値を返します。
        新しいソートされたRealmResultsが作成され、返されます。 元のコレクションは変更されません。
      • sort

        public RealmResults<E> sort​(String[] fieldNames,
                                    Sort[] sortOrders)
        指定されたフィールドとソート順序に基づいてコレクションをソートします。
        次のによって指定されます。
        sort 内 インターフェース OrderedRealmCollection<E>
        パラメーター:
        fieldNames - ソートするフィールド名の配列。 ブール値、短縮、int、long、float、double、Date、string 型のフィールドのみがサポートされます。
        sortOrders - 並べ替える方向。
        次の値を返します。
        新しいソートされたRealmResultsが作成され、返されます。 元のコレクションは変更されません。
      • deleteFromRealm

        public void deleteFromRealm​(int location)
        指定されたインデックスにあるオブジェクトを Realm から削除します。 これにより、 コレクションからそのファイルも削除されます。
        次のによって指定されます。
        deleteFromRealm 内 インターフェース OrderedRealmCollection<E>
        パラメーター:
        location - 削除するオブジェクトを識別する配列インデックス。
      • サイズ

        public int size()
        このList内の要素の数を返します。
        次のによって指定されます。
        size 内 インターフェース Collection<E>
        次のによって指定されます。
        size 内 インターフェース List<E>
        次のによって指定されます。
        size クラス内 AbstractCollection<E>
        次の値を返します。
        このList内の要素の数。
        次の例外がスローされます。
        IllegalStateException - Realm インスタンスが閉じられているか、親オブジェクトが削除されている場合。
      • WHERE

        public RealmQuery<E> where()
        RealmQuery を返します。これは、このクラスの特定のオブジェクトをクエリするために使用できます。
        次のによって指定されます。
        where 内 インターフェース RealmCollection<E>
        次の値を返します。
        RealmQuery オブジェクト。
        次の例外がスローされます。
        IllegalStateException - Realm インスタンスが閉じられているか、親オブジェクトが削除されている場合。
        以下も参照してください。
        RealmQuery
      • min

        @Nullable public Number min( string fieldName)
        フィールドの最小値を検索します。
        次のによって指定されます。
        min 内 インターフェース RealmCollection<E>
        パラメーター:
        fieldName - 最小を検索するフィールド。 数値フィールドのみがサポートされます。
        次の値を返します。
        オブジェクトが存在しない場合、または特定のフィールドの値としてnullが含まれている場合は、 nullが返されます。 それ以外の場合は、最小値が返されます。 最小値を決定する場合、 null値を持つオブジェクトは無視されます。
      • 最大

        @Nullable public Number max( string fieldName)
        フィールドの最大値を検索します。
        次のによって指定されます。
        max 内 インターフェース RealmCollection<E>
        パラメーター:
        fieldName - の最大値を検索するフィールド。 数値フィールドのみがサポートされます。
        次の値を返します。
        オブジェクトが存在しない場合、または特定のフィールドの値としてnullが含まれている場合は、 nullが返されます。 それ以外の場合は、最大値が返されます。 最大値を決定する際、 null値を持つオブジェクトは無視されます。
      • 合計

        public previewstring fieldName)
        指定された フィールドの合計を計算します。
        次のによって指定されます。
        sum 内 インターフェース RealmCollection<E>
        パラメーター:
        fieldName - 合計するフィールド。 数値フィールドのみがサポートされます。
        次の値を返します。
        の合計。 オブジェクトが存在しない場合、または指定されたフィールドの値としてnullが含まれている場合は、 0が返されます。 合計を計算する場合、 null値を持つオブジェクトは無視されます。
      • 平均

        public double Average( string fieldName)
        指定されたフィールドの平均を返します。
        次のによって指定されます。
        average 内 インターフェース RealmCollection<E>
        パラメーター:
        fieldName - 平均を計算するフィールド。 数値フィールドのみがサポートされます。
        次の値を返します。
        クエリ結果内のオブジェクト内の特定のフィールドの平均。 これは、すべての型の数値フィールドで double 型になります。 オブジェクトが存在しない場合、または指定されたフィールドの値としてnullが含まれている場合は、 0が返されます。 平均を計算する場合、 null値を持つオブジェクトは無視されます。
      • 最大日付

        @Nullable public Datestring fieldName)
        最大日付を検索します。
        次のによって指定されます。
        maxDate 内 インターフェース RealmCollection<E>
        パラメーター:
        fieldName - 最大日付を検索するフィールド。 fieldName が Date 型でない場合、例外がスローされます。
        次の値を返します。
        オブジェクトが存在しない場合、または特定の日付フィールドの値としてnullが含まれている場合は、 nullが返されます。 それ以外の場合は、最大日付が返されます。 最大日付を決定する際、 null値を持つオブジェクトは無視されます。
      • minDate

        @Nullable public Date minDate( string fieldName)
        最小日付を検索します。
        次のによって指定されます。
        minDate 内 インターフェース RealmCollection<E>
        パラメーター:
        fieldName - 最小日付を検索するフィールド。 fieldName が Date 型でない場合、例外がスローされます。
        次の値を返します。
        オブジェクトが存在しない場合、または特定の日付フィールドの値としてnullが含まれている場合は、 nullが返されます。 それ以外の場合は、最小日付が返されます。 最小日付を決定する場合、 null値を持つオブジェクトは無視されます。
      • deleteAllFromRealm

        公開ブール値の deleteAllFromRealm()
        これにより、コレクション内のすべてのオブジェクトが基礎の Realm と コレクションから削除されます。
        次のによって指定されます。
        deleteAllFromRealm 内 インターフェース RealmCollection<E>
        次の値を返します。
        true オブジェクトが削除された場合は 、それ以外の場合はfalse
      • isLoaded

        公開ブール値 isLoaded()
        コレクションがデータのロードをまだ完了しているかどうかを確認します。
        次のによって指定されます。
        isLoaded 内 インターフェース RealmCollection<E>
        次の値を返します。
        true データがロードされ、利用可能な場合は 、データがまだロード中の場合はfalseになります。
      • 負荷

        public ブール値 load()
        すべてのデータが利用可能になるまでコレクションをブロックします。
        次のによって指定されます。
        load 内 インターフェース RealmCollection<E>
        次の値を返します。
        true データを正常に読み込むことができた場合は 、そうでない場合はfalse
      • に含まれる

        公開ブール値には が含まれます( @Nullable Object object)
        Realm にアタッチされた場合、リストに指定された要素が含まれている場合はtrueを返します。 このメソッドは、基礎となるネイティブ Realm ストレージ エンジンをクエリして、指定された要素を迅速に見つけます。

        リストが Realm に添付されていない場合は、デフォルトのList.contains(Object)実装が行われます。

        次のによって指定されます。
        contains 内 インターフェース Collection<E>
        次のによって指定されます。
        contains 内 インターフェース List<E>
        次のによって指定されます。
        contains 内 インターフェース RealmCollection<E>
        上書き:
        contains クラス内 AbstractCollection<E>
        パラメーター:
        object - このリスト内の存在をテストする要素。
        次の値を返します。
        true このリストに指定された要素が含まれている場合は、それ以外の場合falseです。
      • getRealm

        public Realm getRealm()
        このコレクションが属するRealmインスタンスを返します。

        返されたインスタンスでCloseable.close()を呼び出すことは、元の Realm インスタンスで呼び出すのと同じであるため推奨されません。これにより、Realm は無効化リストを完全に閉じてしまう可能性があります。

        次の値を返します。
        このコレクションが属するRealmインスタンスまたは、コレクションが管理されていない場合はnullに属します。
        次の例外がスローされます。
        IllegalStateException - Realm がDynamicRealmのインスタンスであるか、 Realmがすでに閉じられている場合。
      • asFlowable

        public Flowable<RealmList<E>> asFlowable()
        この RealmList への変更を監視する Rx Flowable を返します。 サブスクライブすると、現在の RealmList が発行されます。 RealmList が更新されるにつれて RealmList は継続的に出力されます - onCompleteは呼び出されません。

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

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

        list.asFlowable() .observeOn(Schedulers.computation()) .map(rxResults -> doExpensiveWork(rxResults)) .observeOn(AndroidSchedulers.mainThread()) .subscribe( ... );

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

         
         list.asFlowable()
              .first()
              .subscribe( ... ) // You only get the results once
         
         

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

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

        RealmList が更新されるにつれて RealmList は継続的に出力されます - onCompleteは呼び出されません。

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

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

        list.asChangesetObservable() .observeOn(Schedulers.computation()) .map((rxList, changes) -> doExpensiveWork(rxList, changes)) .observeOn(AndroidSchedulers.mainThread()) .subscribe( ... );

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

        public void addChangeListener​(OrderedRealmCollectionChangeListener<RealmList<E>> listener)
        このRealmListに変更リスナーを追加します。

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

         
         public class MyActivity extends Activity {
        
             private RealmList<Dog> dogs; // Strong reference to keep listeners alive
        
             \@Override
             protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               dogs = realm.where(Person.class).findFirst().getDogs();
               dogs.addChangeListener(new OrderedRealmCollectionChangeListener<RealmList<Dog>>() {
                   \@Override
                   public void onChange(RealmList<Dog> dogs, OrderedCollectionChangeSet changeSet) {
                       // React to change
                   }
               });
             }
         }
         
         
        パラメーター:
        listener - 通知される変更リスナー。
        次の例外がスローされます。
        IllegalArgumentException - 変更リスナーがnullの場合。
        IllegalStateException - 非 loader またはIntentServiceスレッドからリスナーを追加しようとする場合。
      • addchangeLister

        public void addChangeListener​(RealmChangeListener<RealmList<E>> listener)
        このRealmListに変更リスナーを追加します。

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

         
         public class MyActivity extends Activity {
        
             private RealmList<Dog> dogs; // Strong reference to keep listeners alive
        
             \@Override
             protected void onCreate(Bundle savedInstanceState) {
               super.onCreate(savedInstanceState);
               dogs = realm.where(Person.class).findFirst().getDogs();
               dogs.addChangeListener(new RealmChangeListener<RealmList<Dog>>() {
                   \@Override
                   public void onChange(RealmList<Dog> dogs) {
                       // React to change
                   }
               });
             }
         }
         
         
        パラメーター:
        listener - 通知される変更リスナー。
        次の例外がスローされます。
        IllegalArgumentException - 変更リスナーがnullの場合。
        IllegalStateException - 非 loader またはIntentServiceスレッドからリスナーを追加しようとする場合。
      • deleteCheckLister

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

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