Docs Menu
Docs Home
/ /
Atlas Device SDK
/ / /

클래스 RealmResults

이 페이지의 내용

  • io.realm
  • 메서드 요약
  • 상속된 메서드
  • 메서드 세부 정보
  • addChangeListener
  • asChangesetObservable
  • asFlowable
  • asJSON
  • 동결
  • IsFrozen
  • isLoaded
  • 로드
  • 모든 변경 리스너 제거
  • removeChangeListener
  • setBlob
  • setBoolean
  • setByte
  • setDate
  • setDecimal128
  • setDouble
  • setFloat
  • setInt
  • setList
  • setLong
  • setNull
  • setObject
  • setObjectId
  • setShot
  • setString
  • setUUID
  • setValue
  • sort
  • 위치
java.lang.Object
io.realm.OrderedRealmCollectionImpl
io.realm.RealmResults

이 클래스는 주어진 Realm에 대한 RealmQuery 의 모든 일치 항목을 보유합니다. 객체는 Realm에서 RealmResults 목록으로 복사되지 않고 대신 RealmResult에서 참고될 뿐입니다. 이렇게 하면 메모리가 절약되고 속도가 빨라집니다.

RealmResults는 라이브 뷰이므로 이벤트 루프 스레드에 있는 경우 트랜잭션이 커밋된 후 쿼리 결과를 자동으로 업데이트합니다. 이벤트 루프가 아닌 스레드에서는 결과를 업데이트하기 위해 Realm.refresh() 를 호출해야 합니다.

RealmResults 목록에서 RealmObjects 업데이트는 트랜잭션 내에서 수행해야 하며 수정된 객체는 트랜잭션이 커밋되는 동안 Realm 파일에 유지됩니다.

RealmResults 객체는 서로 다른 스레드 간에 전달할 수 없습니다.

RealmResults는 객체가 없는 경우를 제외하고는 절대 null 이(가) 되지 않습니다. 항상 RealmResults.size() 메서드를 사용하여 RealmResults가 비어 있는지 확인합니다.

RealmResults가 RealmList.where() 를 통해 RealmList에 빌드되는 경우 , 소스 RealmList가 삭제되면 비어 있게 됩니다.

RealmResultsInteger.MAX_VALUE 보다 더 많은 요소를 포함할 수 있습니다. 이 경우 처음 Integer.MAX_VALUE 요소에만 액세스할 수 있습니다.

다음도 참조하세요.

수정자 및 유형
메서드 및 설명
public void
public void

RealmResults 에 변경 리스너를 추가합니다.

public <any>

이 RealmResults의 변경 사항을 모니터링하는 Rx Observable을 반환합니다.

public <any>

이 RealmResults의 변경 사항을 모니터링하는 Rx Flowable을 반환합니다.

공개 string

RealmQuery 의 일치 항목에 대한 JSON 표현을 반환합니다.

공개 부울
공개 부울

결과가 아직 로드되지 않은 경우 false 를 반환하고, 로드된 경우 true 을 반환합니다.

공개 부울
load ()

비동기 쿼리를 차단합니다.

public void

모든 사용자 정의 변경 수신기를 제거합니다.

public void
public void

지정된 변경 리스너를 제거합니다.

public void
String fieldName,
byte[] value
)

collection의 모든 객체에서 지정된 필드의 이진 값을 설정합니다.

public void
String fieldName,
boolean value
)

collection의 모든 객체에서 지정된 필드의 boolean 값을 설정합니다.

public void
String fieldName,
byte value
)

collection의 모든 객체에서 지정된 필드의 byte 값을 설정합니다.

public void
String fieldName,
Date value
)

collection의 모든 객체에서 지정된 필드의 Date 값을 설정합니다.

public void
String fieldName,
Decimal128 value
)

collection의 모든 객체에서 지정된 필드의 Decimal128 값을 설정합니다.

public void
String fieldName,
double value
)

collection의 모든 객체에서 지정된 필드의 double 값을 설정합니다.

public void
String fieldName,
float value
)

collection의 모든 객체에서 지정된 필드의 float 값을 설정합니다.

public void
String fieldName,
int value
)

collection의 모든 객체에서 지정된 필드의 int 값을 설정합니다.

public void
setList <T >(
)

이 collection에 있는 모든 객체의 지정된 필드에 있는 RealmList를 대체합니다.

public void
String fieldName,
long value
)

collection의 모든 객체에서 지정된 필드의 long 값을 설정합니다.

public void
String fieldName
)

collection의 모든 객체에서 지정된 필드에 대해 값을 null 로 설정합니다.

public void
String fieldName,
)

collection에 있는 모든 객체에서 지정된 필드에 있는 다른 객체에 대한 참고를 설정합니다.

public void
String fieldName,
ObjectId value
)

collection의 모든 객체에서 지정된 필드의 ObjectId 값을 설정합니다.

public void
String fieldName,
short value
)

collection의 모든 객체에서 지정된 필드의 short 값을 설정합니다.

public void
String fieldName,
String value
)

collection의 모든 객체에서 지정된 필드의 String 값을 설정합니다.

public void
String fieldName,
UUID value
)

collection의 모든 객체에서 지정된 필드의 UUID 값을 설정합니다.

public void
String fieldName,
Object value
)

쿼리 결과 내의 모든 객체에서 fieldName 로 지정된 필드를 업데이트합니다.

String fieldName1,
Sort sortOrder1,
String fieldName2,
Sort sortOrder2
)

제공된 필드와 정렬 순서에 따라 collection을 정렬합니다.

공개 RealmQuery

이 collection에서 특정 objects를 쿼리하는 데 사용할 수 있는 RealmQuery 를 반환합니다.

  • 클래스 java.lang.Object 에서 상속된 메서드 : getClass , hashCode , equals , clone , toString , notify , notifyAll , wait , wait , wait , finalize

  • 클래스 java.util.AbstractCollection 에서 상속된 메서드 : iterator , size , isEmpty , contains , toArray , toArray , add , remove , containsAll , addAll , removeAll , retainAll , clear , toString

  • 클래스 java.util.AbstractList 에서 상속된 메서드 : add , get , set , add , remove , indexOf , lastIndexOf , clear , addAll , iterator , listIterator , listIterator , subList , equals , hashCode , removeRange

  • io.realm.OrderedRealmCollectionImp 클래스에서 상속된 메서드: isValid , isManaged , contains , get , first , first , last , last , deleteFromRealm , deleteAllFromRealm , iterator , listIterator , listIterator , sort , sort , sort , sort , size , min , minDate , max , maxDate , sum , average , remove , remove , removeAll , set , retainAll , deleteLastFromRealm , deleteFirstFromRealm , clear , add , add , addAll , addAll , createSnapshot , getRealm , getCollectionOperator

RealmResults 에 변경 리스너를 추가합니다.

변경 리스너를 등록해도 기본 RealmResults가 가비지 수집되는 것을 방지할 수는 없습니다. RealmResults가 가비지 컬렉션되면 변경 리스너 트리거가 중지됩니다. 이를 방지하려면 클래스 변수와 같이 적절한 길이로 강력한 참고를 유지하세요.

public class MyActivity extends Activity {
private RealmResults<Person> results; // Strong reference to keep listeners alive
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
results = realm.where(Person.class).findAllAsync();
results.addChangeListener(new OrderedRealmCollectionChangeListener<RealmResults<Person>>() {
@Override
public void onChange(RealmResults<Person> persons, OrderedCollectionChangeSet changeSet) {
// React to change
}
});
}
}

매개변수

  • listener - 알림을 받을 변경 리스너입니다.

스로우

RealmResults 에 변경 리스너를 추가합니다.

변경 리스너를 등록해도 기본 RealmResults가 가비지 수집되는 것을 방지할 수는 없습니다. RealmResults가 가비지 컬렉션되면 변경 리스너 트리거가 중지됩니다. 이를 방지하려면 클래스 변수와 같이 적절한 길이로 강력한 참고를 유지하세요.

public class MyActivity extends Activity {
private RealmResults<Person> results; // Strong reference to keep listeners alive
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
results = realm.where(Person.class).findAllAsync();
results.addChangeListener(new RealmChangeListener<RealmResults<Person>>() {
@Override
public void onChange(RealmResults<Person> persons) {
// React to change
}
});
}
}

매개변수

  • listener - 알림을 받을 변경 리스너입니다.

스로우

public <any> asChangesetObservable ()

이 RealmResults의 변경 사항을 모니터링하는 Rx Observable을 반환합니다. 구독 시 현재 RealmResults를 내보냅니다. RealmResult가 업데이트될 때마다 RealmResults와 OrderedCollectionChangeSet 로 구성된 쌍이 전송됩니다. RealmResults가 처음 방출될 때 변경 세트는 null 가 됩니다.

RealmResults가 업데이트될 때마다 RealmResults가 계속 방출되며 onComplete 는 절대 호출되지 않습니다.

Realm Observable에서 방출된 항목은 동결됩니다(freeze() 참조) . 즉, 변경할 수 없으며 모든 스레드에서 읽을 수 있습니다.

Realm Observable은 항상 라이브 Realm을 보유한 스레드에서 항목을 방출합니다. 즉, 추가 처리를 수행해야 하는 경우 계산 스케줄러에서 값을 관찰하는 것이 좋습니다.

realm.where(Foo.class).findAllAsync().asChangesetObservable()
.observeOn(Schedulers.computation())
.map((rxResults, changes) -> doExpensiveWork(rxResults, changes))
.observeOn(AndroidSchedulers.mainThread())
.subscribe( ... );

반환

onNext 만 호출하는 RxJava Observable입니다. 절대 onComplete 또는 OnError 를 호출하지 않습니다.

스로우

  • UnsupportedOperationException - 필요한 RxJava 프레임워크가 클래스 경로에 없거나 해당 Realm 인스턴스가 RxJava를 지원하지 않는 경우.

  • 불법적인 상태 예외 - Realm이 Looper 스레드에서 열리지 않은 경우.

다음도 참조하세요.

public <any> asFlowable ()

이 RealmResults의 변경 사항을 모니터링하는 Rx Flowable을 반환합니다. 구독 시 현재 RealmResults를 내보냅니다. RealmResults가 업데이트될 때마다 RealmResults가 계속 방출되며 onComplete 는 절대 호출되지 않습니다.

Realm Flowables에서 방출된 항목은 동결됩니다(freeze() 참조) . 즉, 변경할 수 없으며 모든 스레드에서 읽을 수 있습니다.

Realm Flowable은 항상 라이브 RealmResults를 보유하는 스레드에서 항목을 방출합니다. 즉, 추가 처리를 수행해야 하는 경우 계산 스케줄러에서 값을 관찰하는 것이 좋습니다.

realm.where(Foo.class).findAllAsync().asFlowable()
.observeOn(Schedulers.computation())
.map(rxResults -> doExpensiveWork(rxResults))
.observeOn(AndroidSchedulers.mainThread())
.subscribe( ... );

asFlowable() 에서 항목 방출을 중지하려면 first() 연산자를 사용하여 첫 번째 항목만 방출하도록 RxJava에 지시할 수 있습니다.

realm.where(Foo.class).findAllAsync().asFlowable()
.filter(results -> results.isLoaded())
.first()
.subscribe( ... ) // You only get the results once

반환

onNext 만 호출하는 RxJava Observable입니다. 절대 onComplete 또는 OnError 를 호출하지 않습니다.

스로우

  • UnsupportedOperationException - 필요한 RxJava 프레임워크가 클래스 경로에 없거나 해당 Realm 인스턴스가 RxJava를 지원하지 않는 경우.

  • 불법적인 상태 예외 - Realm이 Looper 스레드에서 열리지 않은 경우.

다음도 참조하세요.

public String asJSON ()

RealmQuery 의 일치 항목에 대한 JSON 표현을 반환합니다. 주기는 행 인덱스로 반환됩니다. 이 메서드는 데이터를 검사하는 데 사용되는 도우미 메서드이며, 디버깅 목적으로 이 메서드가 큰 문자열을 가져올 경우 OutOfMemory 오류가 발생할 수 있습니다.

반환

결과 RealmQuery 의 항목이 포함된 JSON 배열의 문자열 표현입니다.

public boolean isFrozen ()

public boolean isLoaded ()

결과가 아직 로드되지 않은 경우 false 를 반환하고, 로드된 경우 true 을 반환합니다.

반환

true 쿼리가 완료되고 데이터를 사용할 수 있는 경우 false , 쿼리가 여전히 백그라운드에서 실행 중인 경우.

public boolean load ()

비동기 쿼리를 차단합니다. 이렇게 하면 query가 완료되면 등록된 모든 RealmChangeListener 도 trigger됩니다.

반환

true 쿼리를 성공적으로 완료했으면 false 을 반환합니다.

모든 사용자 정의 변경 수신기를 제거합니다.

스로우

  • 불법적인 상태 예외 - Looper가 아닌 스레드에서 리스너를 제거하려고 하는 경우.

다음도 참조하세요.

지정된 변경 리스너를 제거합니다.

매개변수

  • listener - 제거할 변경 리스너입니다.

스로우

다음도 참조하세요.

지정된 변경 리스너를 제거합니다.

매개변수

  • listener - 제거할 변경 리스너입니다.

스로우

다음도 참조하세요.

public void setBlob (
String fieldName,
byte[] value
)

collection의 모든 객체에서 지정된 필드의 이진 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

public void setBoolean (
String fieldName,
boolean value
)

collection의 모든 객체에서 지정된 필드의 boolean 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

  • 불법적인 인수 예외 - 필드 이름이 존재하지 않거나, 프라이머리 키 속성이거나 부울 필드가 아닌 경우.

public void setByte (
String fieldName,
byte value
)

collection의 모든 객체에서 지정된 필드의 byte 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

public void setDate (
String fieldName,
Date value
)

collection의 모든 객체에서 지정된 필드의 Date 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

public void setDecimal128 (
String fieldName,
Decimal128 value
)

collection의 모든 객체에서 지정된 필드의 Decimal128 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

public void setDouble (
String fieldName,
double value
)

collection의 모든 객체에서 지정된 필드의 double 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

public void setFloat (
String fieldName,
float value
)

collection의 모든 객체에서 지정된 필드의 float 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

  • 불법적인 인수 예외 - 필드 이름이 존재하지 않거나, 프라이머리 키 속성이거나, 플로트 필드가 아닌 경우.

public void setInt (
String fieldName,
int value
)

collection의 모든 객체에서 지정된 필드의 int 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

  • 불법적인 인수 예외 - 필드 이름이 존재하지 않거나, 기본 키 속성이거나 정수 필드가 아닌 경우

public void setList <T >(
)

이 collection에 있는 모든 객체의 지정된 필드에 있는 RealmList를 대체합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • list - 필드의 새 값입니다.

스로우

public void setLong (
String fieldName,
long value
)

collection의 모든 객체에서 지정된 필드의 long 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

  • 불법적인 인수 예외 - 필드 이름이 존재하지 않거나, 기본 키 속성이거나, 긴 필드가 아닌 경우

public void setNull (
String fieldName
)

collection의 모든 객체에서 지정된 필드에 대해 값을 null 로 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

스로우

  • 불법적인 인수 예외 - 필드 이름이 존재하지 않거나프라이머리 키 속성인 경우

  • 불법적인 상태 예외 - 필드가 값을 보유할 수 없는 경우.null

public void setObject (
String fieldName,
)

collection에 있는 모든 객체에서 지정된 필드에 있는 다른 객체에 대한 참고를 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 이 필드에서 참고하는 새 객체입니다.

스로우

  • 불법적인 인수 예외 - 필드 이름이 존재하지 않거나, 프라이머리 키 속성이거나, 객체 참조 필드가 아닌 경우.

public void setObjectId (
String fieldName,
ObjectId value
)

collection의 모든 객체에서 지정된 필드의 ObjectId 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

public void setShort (
String fieldName,
short value
)

collection의 모든 객체에서 지정된 필드의 short 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

  • 불법적인 인수 예외 - 필드 이름이 존재하지 않거나, 기본 키 속성이거나 짧은 필드가 아닌 경우

public void setString (
String fieldName,
String value
)

collection의 모든 객체에서 지정된 필드의 String 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

public void setUUID (
String fieldName,
UUID value
)

collection의 모든 객체에서 지정된 필드의 UUID 값을 설정합니다.

매개변수

  • fieldName - 업데이트할 필드의 이름입니다.

  • value - 필드의 새 값입니다.

스로우

public void setValue (
String fieldName,
Object value
)

쿼리 결과 내의 모든 객체에서 fieldName 로 지정된 필드를 업데이트합니다.

이 메서드는 String 으)로 지정된 숫자와 부울을 적절한 유형으로 자동 변환하려고 시도합니다. 예를 들어 필드 유형이 RealmFieldType.INTEGER 인 경우 "10"10 로 변환됩니다.

setInt(string, int) 와 같은 형식화된 세터를 사용하면 이 메서드를 사용하는 것보다 빠릅니다.

매개변수

  • fieldName - 업데이트할 필드

  • value - 업데이트할 값입니다.

스로우

String fieldName1,
Sort sortOrder1,
String fieldName2,
Sort sortOrder2
)

제공된 필드와 정렬 순서에 따라 collection을 정렬합니다.

반환

새로 정렬된 RealmResults 가 생성되어 반환됩니다. 원본 컬렉션은 변경되지 않습니다.

재정의

sort OrderedRealmCollectionImp클래스에서

public RealmQuery where ()

이 collection에서 특정 objects를 쿼리하는 데 사용할 수 있는 RealmQuery 를 반환합니다.

반환

RealmQuery 객체

돌아가기

RealmQuery