클래스 RealmConfiguration.Builder
이 페이지의 내용
io.realm
클래스를 둘러싸는 경우:
RealmConfiguration.Builder는 RealmConfiguration의 인스턴스를 유창하게 구성하는 데 사용됩니다.
생성자
생성자 및 설명 |
---|
Builder () RealmConfiguration을 위한 빌더 인스턴스를 생성합니다. |
메서드 요약
수정자 및 유형 | 메서드 및 설명 |
---|---|
public final RealmConfiguration.Builder | |
UI 스레드에서 RealmQuery 를 실행할 수 있는지 여부를 설정합니다. | |
UI 스레드에서 Realm.executeTransaction 에 대한 호출을 허용할지 여부를 설정합니다. | |
build () 빌더 매개변수를 기반으로 RealmConfiguration을 생성합니다. | |
사용자에게 반환되기 전에 Realm 파일을 압축해야 하는지 여부를 결정하기 위해 설정합니다. | |
Realm 파일이 너무 커져서 상당한 양의 공간을 복구할 수 있는 경우 Realm 파일을 압축하게 됩니다. | |
이 값을 설정하면 마이그레이션 예외가 처리되는 방식이 변경됩니다. | |
Realm 파일을 암호화하고 해독하는 데 사용되는 64바이트 키를 설정합니다. | |
Realm 객체에서 코루틴 Flow를 만드는 데 사용되는 FlowFactory 를 설정합니다. | |
inMemory () 이 옵션을 설정하면 디스크에 저장하는 대신 인메모리 Realm이 생성됩니다. | |
io.realm.Realm 에 초기 데이터를 설정합니다. | |
IllegalStateException 이 발생하기 전에 Realm 파일의 최대 라이브 버전 수를 설정합니다. 더 많은 데이터를 쓰려고 할 때 발생합니다. | |
마이그레이션이 필요한 경우 실행할 io.realm.RealmMigration 을 설정합니다. | |
기존 모듈을 하나 이상의 RealmModule 로 대체합니다. | |
readOnly () 이 값을 설정하면 Realm이 읽기 전용이 되며 이 Realm에 대한 모든 쓰기 트랜잭션(write transaction)이 실패하고 실패합니다(IllegalStateException ). . | |
Realm 객체에서 Rx Observable을 생성하는 데 사용되는 RxObservableFactory 를 설정합니다. | |
Realm의 스키마 버전을 설정합니다. |
상속된 메서드
클래스 java.lang.Object 에서 상속된 메서드 :
getClass
,hashCode
,equals
,clone
,toString
,notify
,notifyAll
,wait
,wait
,wait
,finalize
생성자 세부 정보
public Builder () |
---|
RealmConfiguration을 위한 빌더의 인스턴스를 생성합니다. 그러면 Realm 파일을 저장하기 위해 앱의 자체 내부 디렉토리를 사용합니다. 추가 권한이 필요하지 않습니다. 기본 위치는 /data/data/<packagename>/files 이지만 Android 공급업체 구현에 따라 변경될 수 있습니다. |
메서드 세부 정보
addModule
FIXME: 일시적으로 표시되는 DEBUG 메서드. 조건 없이 모듈을 추가합니다. 이미 정의된 모듈에 모듈을 추가합니다. |
allowQueriesOnUiThread
UI 스레드에서 RealmQuery 를 실행할 수 있는지 여부를 설정합니다. 기본적으로 Realm은 메인 스레드에서 쿼리를 허용합니다. 그러나 이렇게 하면 애플리케이션에서 프레임 드롭이나 ANR이 발생할 수 있습니다. 쿼리를 UI가 아닌 스레드로 전환하거나 RealmQuery.findAllAsync () 또는 RealmQuery.findFirstAsync( ) 를 사용하는 것이 좋습니다. |
allowWritesOnUiThread
UI 스레드에서 Realm.executeTransaction 에 대한 호출을 허용할지 여부를 설정합니다. 경고: Realm은 사용자가 이 메서드를 명시적으로 옵트인하지 않는 한 메인 스레드에서 동기 트랜잭션을 실행하는 것을 허용하지 않습니다. |
자산 파일
지정된 자산 파일 경로에서 Realm 파일을 복사합니다. Realm을 처음 열 때 빈 파일을 생성하는 대신 제공된 자산 파일에서 Realm 파일을 복사하여 대신 사용합니다. deleteRealmIfMigrationNeeded() 와 함께 사용하면 복사된 파일이 삭제되기 때문에 이 기능을 사용할 수 없습니다. 경고: 이 작업은 시간이 오래 걸릴 수 있으므로 백그라운드 스레드에서 수행하는 것이 좋습니다. 매개변수
스로우
|
빌드
public RealmConfiguration build () |
---|
compactOnLaunch
사용자에게 반환되기 전에 Realm 파일을 압축해야 하는지 여부를 결정하기 위해 설정합니다. 총 파일 크기(데이터 + 여유 공간)와 파일의 데이터가 사용한 바이트가 전달됩니다. 매개변수
|
public RealmConfiguration.Builder compactOnLaunch () |
---|
Realm 파일이 너무 커져서 상당한 양의 공간을 복구할 수 있는 경우 Realm 파일을 압축하게 됩니다. 자세한 내용은 DefaultCompactOnLaunchCallback 을 참조하세요. |
deleteRealmIFMigrationNeded
이 값을 설정하면 마이그레이션 예외가 처리되는 방식이 변경됩니다. io.realm.Exceptions.RealmMigrationneededException 을 발생시키는 대신 온디스크 Realm이 지워지고 새 Realm 스키마로 다시 생성됩니다. 제공된 자산 파일은 마이그레이션에서 삭제되므로 자산 파일 (string) 을 호출하여 자산 파일을 동시에 갖도록 구성할 수 없습니다. 경고! 이로 인해 데이터가 손실됩니다. 스로우
|
디렉토리
Realm 파일이 저장될 디렉토리를 지정합니다. 기본값은 매개변수
스로우
|
encryptionKey
Realm 파일을 암호화하고 해독하는 데 사용되는 64바이트 키를 설정합니다. Realm 파일을 암호화하고 해독하는 데 사용되는 io.realm.Realm#ENCRYPTION_KEY_LENGTH 바이트 키를 설정합니다. |
flowFactory
Realm 객체에서 코루틴 Flow를 만드는 데 사용되는 FlowFactory 를 설정합니다. 기본 팩토리는 RealmFlowFactory 입니다. 매개변수
|
inMemory
public RealmConfiguration.Builder inMemory () |
---|
이 옵션을 설정하면 디스크에 저장하는 대신 인메모리 Realm이 생성됩니다. 메모리가 부족한 경우 인메모리 Realm은 여전히 디스크 공간을 사용할 수 있지만 Realm이 닫히면 인메모리 Realm에서 생성된 모든 파일이 삭제됩니다. 인메모리 Realm은 지속되지 않으므로 다음을 확인해야 합니다. 데이터를 지속하려는 한 특정 이름의 메모리 내 Realm 객체에 대한 비폐쇄 참조를 하나 이상 보유합니다. |
초기 데이터
io.realm.Realm 에 초기 데이터를 설정합니다. 이 트랜잭션은 데이터베이스 파일이 생성될 때 처음으로 실행되거나 Builder.deleteRealmIfMigrationNeeded() 가 설정된 경우 데이터를 마이그레이션하는 동안에만 실행됩니다. 매개변수
|
maxNumberOfActiveVersions
IllegalStateException 이 발생하기 전에 Realm 파일의 최대 라이브 버전 수를 설정합니다. 더 많은 데이터를 쓰려고 할 때 발생합니다. Realm은 다양한 버전의 Realm 객체를 동시에 처리할 수 있습니다. 예를 들면 다음과 같습니다. Realm이 여러 스레드에서 열려 있거나 데이터가 파일에 기록되는 동안 객체가 정지되는 경우에 발생합니다. 정상적인 상황에서는 문제가 되지 않지만 활성 버전 수가 너무 많아지면 디스크의 파일 크기에 부정적인 영향을 미칩니다. 따라서 이 매개변수를 설정하면 매우 큰 Realm이 발생할 수 있는 Realm 사용을 방지할 수 있습니다. 매개변수
|
migration
마이그레이션이 필요한 경우 실행할 io.realm.RealmMigration 을 설정합니다. 이 마이그레이션이 온디스크 스키마를 런타임 스키마로 업그레이드하지 못하면 io.realm.Exceptions.RealmMigrationneededException 이 발생합니다. |
모듈
기존 모듈을 하나 이상의 RealmModule 로 대체합니다. 이 방법을 사용하면 이 Realm의 현재 스키마가 제공된 모듈에서 정의된 스키마로 대체됩니다. 프로젝트의 모든 Realm 클래스(종속성 제외)를 포함하는 기본 Realm 모듈에 대한 참고는 Realm.getDefaultModule() 을 사용하여 찾을 수 있습니다. 따라서 다음 코드를 사용하여 앱 프로젝트의 스키마와 라이브러리 종속성을 결합합니다.
매개변수
스로우
|
이름
Realm 파일의 파일 이름을 설정합니다. |
읽기 전용
public RealmConfiguration.Builder readOnly () |
---|
이 값을 설정하면 Realm이 읽기 전용이 되며 이 Realm에 대한 모든 쓰기 트랜잭션(write transaction)이 실패하고 실패합니다(IllegalStateException ). . 이는 특히 initialData(Realm.Transaction) 가 읽기 전용 Realm과 함께 작동하지 않으며 이를 설정하면 불법적인 상태 예외(IllegalStateException )가 발생한다는 의미입니다. 던져지고 있습니다. 이 프로세스에서 Realm을 읽기 전용으로 표시하는 것은 Realm에만 적용됩니다. 다른 프로세스는 여전히 Realm에 쓸 수 있습니다. |
rxFactory
Realm 객체에서 Rx Observable을 생성하는 데 사용되는 RxObservableFactory 를 설정합니다. 기본 팩토리는 RealmObservableFactory 입니다. 매개변수
|
스키마 버전
Realm의 스키마 버전을 설정합니다. 이 값은 기존 Realm 파일의 스키마 버전과 동일하거나 그 이상이어야 합니다. 스키마 버전이 기존 Realm 보다 높은 경우 마이그레이션이 필요합니다. |