클래스 DynamicRealm
이 페이지의 내용
io.realm
DynamicRealm은 io.realm.Realm 의 동적 변형입니다. 즉, 데이터 및/또는 쿼리에 대한 모든 액세스가 클래스 유형 참고 대신 문자열 기반 클래스 이름을 사용하여 수행됩니다.
이 기능은 마이그레이션을 하거나 CSV 또는 XML 파일과 같은 문자열 기반 데이터로 작업할 때 유용합니다.
동일한 io.realm.RealmConfiguration 을 사용하여 동적 모드와 입력 모드 모두에서 Realm 파일을 열 수 있지만, 입력 버전과 동적 버전이 모두 열린 상태에서 스키마를 수정하는 것은 적극 권장하지 않으며 입력된 Realm이 충돌할 가능성이 높습니다. During migrations only a DynamicRealm will be open.
동적 Realm은 스키마나 스키마 버전을 적용하지 않으며 RealmMigration 코드가 RealmConfiguration 에 정의되어 있더라도 사용되지 않습니다.
즉, Realm이 유형 모드에서 열릴 때까지 스키마가 생성되거나 유효성이 검사되지 않습니다. Realm 파일을 먼저 동적 모드에서 열면 해당 파일에는 클래스와 필드에 대한 정보가 포함되지 않으며 스키마에 의해 정의된 클래스에 대한 쿼리가 실패합니다.
중첩된 클래스 요약
수정자 및 유형 | 클래스 및 설명 |
---|---|
public static interface | |
public abstract static |
메서드 요약
수정자 및 유형 | 메서드 및 설명 |
---|---|
public void | Realm에 변경 리스너를 추가합니다. |
public <any> | asFlowable () 이 Realm의 변경 사항을 모니터링하는 RxJava Flowable을 반환합니다. |
새로운 내장된 객체를 인스턴스화하고 Realm에 추가합니다. | |
지정된 기본 키를 사용하여 객체를 생성합니다. | |
Realm에 새 객체를 인스턴스화하고 추가합니다. | |
public void | |
public void | DynamicRealm에서 지정된 트랜잭션을 실행합니다. |
public RealmAsyncTask | DynamicRealm.Transaction transaction, DynamicRealm.Transaction.OnSuccess onSuccess, DynamicRealm.Transaction.OnError onError ) executionTransactionAsync (Transaction) 와 유사하지만 OnSuccess 및 OnError 콜백도 허용합니다. |
public RealmAsyncTask | DynamicRealm.Transaction transaction, DynamicRealm.Transaction.OnError onError ) executionTransactionAsync(Transaction) 와 유사하지만 OnError 콜백도 허용합니다. |
public RealmAsyncTask | DynamicRealm.Transaction transaction, DynamicRealm.Transaction.OnSuccess onSuccess ) executionTransactionAsync (Transaction) 과 유사하지만 OnSuccess 콜백 도 허용합니다. |
public RealmAsyncTask | executionTransaction(Transaction)과 유사하지만 작업자 스레드에서 비동기적으로 실행됩니다. |
공개 DynamicRealm | freeze () 현재 Realm의 동결된 스냅샷을 반환합니다. |
공개 정적 DynamicRealm | 제공된 io.realm.RealmConfiguration 에 의해 정의된 Realm 인스턴스의 동적 변형을 반환하는 정적 생성자입니다. |
public static RealmAsyncTask | 프로세스에서 RealmConfiguration 당 첫 Realm 인스턴스를 생성하는 것은 모든 초기화 코드가 해당 점에서 실행되어야 하므로(Realm 설정, 스키마 유효성 검사 및 초기 데이터 생성) 시간이 걸릴 수 있습니다. |
public RealmSchema | getSchema () 이 Realm의 변경 가능한 스키마를 반환합니다. |
공개 부울 | isEmpty () 이 io.realm.Realm 에 객체가 포함되어 있는지 확인합니다. |
public void | 모든 사용자 정의 변경 수신기를 제거합니다. |
public void | 지정된 변경 리스너를 제거합니다. |
공개 RealmQuery |
상속된 메서드
클래스 java.lang.Object 에서 상속된 메서드 :
getClass
,hashCode
,equals
,clone
,toString
,notify
,notifyAll
,wait
,wait
,wait
,finalize
io.realm.BaseRealm 클래스에서 상속된 메서드:
setAutoRefresh
,isAutoRefresh
,refresh
,isInTransaction
,addListener
,removeListener
,asFlowable
,removeAllListeners
,writeCopyTo
,writeEncryptedCopyTo
,waitForChange
,stopWaitForChange
,beginTransaction
,commitTransaction
,cancelTransaction
,freeze
,isFrozen
,getNumberOfActiveVersions
,checkIfValid
,checkAllowQueriesOnUiThread
,checkAllowWritesOnUiThread
,checkIfInTransaction
,checkIfValidAndInTransaction
,getPath
,getConfiguration
,getVersion
,close
,isClosed
,isEmpty
,getSchema
,getSubscriptions
,deleteAll
,migrateRealm
,finalize
메서드 세부 정보
addChangeListener
Realm에 변경 리스너를 추가합니다. 이 스레드 또는 다른 스레드에서 변경 사항이 커밋될 때 리스너가 실행됩니다. Realm 인스턴스는 스레드별로 캐시됩니다. 따라서 removeChangeListener(RealmChangeListener) 또는 removeAllChangeListeners() 를 사용하여 리스너를 다시 제거하는 것이 중요합니다. 그렇지 않으면 메모리 누수가 발생할 수 있습니다. 매개변수
스로우
|
asFlowable
public <any> asFlowable () | ||||||
---|---|---|---|---|---|---|
이 Realm의 변경 사항을 모니터링하는 RxJava Flowable을 반환합니다. 구독 시 현재 상태를 방출합니다. Realm이 업데이트될 때마다 항목이 계속 방출되며 Realm Flowable에서 방출된 항목은 동결됩니다(freeze() 참조). 즉, 변경할 수 없으며 모든 스레드에서 읽을 수 있습니다. Realm Flowable은 항상 라이브 Realm을 보유한 스레드에서 항목을 방출합니다. 즉, 추가 처리를 수행해야 하는 경우 계산 스케줄러에서 값을 관찰하는 것이 좋습니다.
반환
재정의
|
createEmbeddedObject
public DynamicRealmObject createEmbeddedObject ( ) |
---|
새 내장된 객체를 인스턴스화하고 Realm에 추가합니다. 이 메서드는 내장된 것으로 표시된 유형의 객체를 생성하는 데만 사용해야 합니다. 매개변수
반환 새로 생성된 내장된 객체입니다. 스로우
|
createObject
지정된 프라이머리 키를 사용하여 객체를 생성합니다. 기본 키가 정의되지 않은 클래스는 대신 createObject(string) }를 사용해야 합니다. 반환 새 객체. 제공된 값을 가질 기본 키 필드를 제외한 모든 필드는 해당 유형에 대한 기본값을 갖습니다. 스로우
|
Realm에 새 객체를 인스턴스화하고 추가합니다. 매개변수
반환 새 객체. 스로우
|
삭제
executionTransaction
DynamicRealm에서 지정된 트랜잭션을 실행합니다. startTransaction() 및 commitTransaction() 이 자동으로 호출됩니다. 트랜잭션 중에 예외가 발생하면 commitTransaction() 대신 취소 트랜잭션 () 이 호출됩니다. UI 스레드에서 이 메서드를 호출하면 RealmException 이 발생합니다. 이렇게 하면 프레임 드롭 또는 ANR이 발생할 수 있습니다. UI가 아닌 스레드에서 이 메서드를 호출하거나 대신 executionTransactionAsync(Transaction) 를 사용하는 것이 좋습니다. 매개변수
스로우
|
executionTransactionAsync
public RealmAsyncTask executeTransactionAsync ( DynamicRealm.Transaction transaction, DynamicRealm.Transaction.OnSuccess onSuccess, DynamicRealm.Transaction.OnError onError ) |
---|
executionTransactionAsync (Transaction) 와 유사하지만 OnSuccess 및 OnError 콜백도 허용합니다. 매개변수
반환 취소 가능한 작업을 나타내는 RealmAsyncTask 입니다. 스로우
|
public RealmAsyncTask executeTransactionAsync ( DynamicRealm.Transaction transaction, DynamicRealm.Transaction.OnError onError ) |
---|
executionTransactionAsync(Transaction) 와 유사하지만 OnError 콜백도 허용합니다. 매개변수
반환 취소 가능한 작업을 나타내는 RealmAsyncTask 입니다. 스로우
|
public RealmAsyncTask executeTransactionAsync ( DynamicRealm.Transaction transaction, DynamicRealm.Transaction.OnSuccess onSuccess ) |
---|
executionTransactionAsync (Transaction) 과 유사하지만 OnSuccess 콜백 도 허용합니다. 매개변수
반환 취소 가능한 작업을 나타내는 RealmAsyncTask 입니다. 스로우
|
executionTransaction(Transaction)과 유사하지만 작업자 스레드에서 비동기적으로 실행됩니다. 매개변수
반환 취소 가능한 작업을 나타내는 RealmAsyncTask 입니다. 스로우
|
동결
public DynamicRealm freeze () |
---|
현재 Realm의 동결된 스냅샷을 반환합니다. 이 Realm은 IllegalStateException 을 발생시키지 않고 모든 스레드에서 읽고 쿼리할 수 있습니다. . 동결된 Realm에는 자체 수명 주기가 있으며 close() 를 호출하여 닫을 수 있지만 동결된 복사본을 생성한 Realm을 완전히 닫으면 동결된 Realm도 닫힙니다. 동결된 데이터는 정상적으로 쿼리할 수 있지만 어떤 방식으로든 데이터를 변경하거나 리스너를 등록하려고 하면 불법적인 상태 예외( IllegalStateException )가 발생합니다. . 참고: 버전이 다른 많은 수의 Realm을 활성 상태로 유지하면 Realm의 파일 크기에 부정적인 영향을 미칠 수 있습니다. 이러한 상황을 방지하려면 RealmConfiguration.Builder.maxNumberOfActiveVersions(long) 을 설정할 수 있습니다. 반환 이 Realm의 동결된 사본입니다. 재정의
|
getInstance
제공된 io.realm.RealmConfiguration 에 의해 정의된 Realm 인스턴스의 동적 변형을 반환하는 정적 생성자입니다. 동적 Realm은 schemaVersion 및 스키마에는 상관하지 않으므로 DynamicRealm을 열어도 마이그레이션이 trigger되지 않습니다. 반환 구성에 의해 정의된 DynamicRealm입니다. 스로우
|
getInstanceAsync
public static RealmAsyncTask getInstanceAsync ( RealmConfiguration configuration, DynamicRealm.Callback callback ) |
---|
프로세스에서 RealmConfiguration 당 첫 Realm 인스턴스를 생성하는 것은 모든 초기화 코드가 해당 점에서 실행되어야 하므로(Realm 설정, 스키마 유효성 검사 및 초기 데이터 생성) 시간이 걸릴 수 있습니다. 이 메서드는 초기화 작업을 백그라운드 스레드에 배치하고 초기화가 완료된 후 Realm 인스턴스를 호출자 스레드에 비동기적으로 전달합니다. 매개변수
반환 취소 가능한 작업을 나타내는 RealmAsyncTask 입니다. 스로우
|
getSchema
public RealmSchema getSchema () |
---|
isEmpty
public boolean isEmpty () |
---|
이 io.realm.Realm 에 객체가 포함되어 있는지 확인합니다. 반환
재정의
|
모든 변경 리스너 제거
public void removeAllChangeListeners () |
---|
모든 사용자 정의 변경 수신기를 제거합니다. 스로우 |
removeChangeListener
위치
제공된 클래스를 쿼리하는 데 사용할 수 있는 RealmQuery를 반환합니다. 매개변수
반환 RealmQuery를 사용하여 제공된 유형의 특정 객체를 쿼리할 수 있습니다. 스로우
|