클래스 RealmConfiguration.Builder
- java.lang.Object
-
- io.realm.RealmConfiguration.Builder
-
- 클래스를 둘러싸는 경우:
- RealmConfiguration
public static class RealmConfiguration.Builder extends Object
RealmConfiguration.Builder는 RealmConfiguration의 인스턴스를 유창하게 구성하는 데 사용됩니다.
-
-
생성자 요약
생성자 Constructor 설명 Builder()
RealmConfiguration을 위한 빌더 인스턴스를 생성합니다.
-
메서드 요약
모든 메서드 인스턴스 메서드 구체적인 방법 수정자 및 유형 메서드 설명 RealmConfiguration.Builder
addModule(Object module)
FIXME: 일시적으로 표시되는 DEBUG 메서드.RealmConfiguration.Builder
allowQueriesOnUiThread(boolean allowQueriesOnUiThread)
UI 스레드에서RealmQuery
을(를) 실행할 수 있는지 여부를 설정합니다.RealmConfiguration.Builder
allowWritesOnUiThread(boolean allowWritesOnUiThread)
UI 스레드에서Realm.executeTransaction(io.realm.Realm.Transaction)
에 대한 호출을 허용할지 여부를 설정합니다.RealmConfiguration.Builder
assetFile(String assetFile)
지정된 자산 파일 경로에서 Realm 파일을 복사합니다.RealmConfiguration
build()
빌더 매개변수를 기반으로 RealmConfiguration을 생성합니다.RealmConfiguration.Builder
compactOnLaunch()
Realm 파일이 너무 커져서 상당한 양의 공간을 복구할 수 있는 경우 Realm 파일을 압축하게 됩니다.RealmConfiguration.Builder
compactOnLaunch(CompactOnLaunchCallback compactOnLaunch)
사용자에게 반환되기 전에 Realm 파일을 압축해야 하는지 여부를 결정하기 위해 설정합니다.RealmConfiguration.Builder
deleteRealmIfMigrationNeeded()
이 값을 설정하면 마이그레이션 예외가 처리되는 방식이 변경됩니다.RealmConfiguration.Builder
directory(File directory)
Realm 파일이 저장될 디렉토리를 지정합니다.RealmConfiguration.Builder
encryptionKey(byte[] key)
Realm 파일을 암호화하고 해독하는 데 사용되는 64바이트 키를 설정합니다.RealmConfiguration.Builder
flowFactory(FlowFactory factory)
Realm 객체에서 코루틴 흐름을 만드는 데 사용되는FlowFactory
을(를) 설정합니다.RealmConfiguration.Builder
initialData(Realm.Transaction transaction)
초기 데이터를Realm
로 설정합니다.RealmConfiguration.Builder
inMemory()
이 옵션을 설정하면 디스크에 저장하는 대신 인메모리 Realm이 생성됩니다.RealmConfiguration.Builder
maxNumberOfActiveVersions(long number)
더 많은 데이터를 쓰려고 할 때IllegalStateException
가 발생하기 전에 Realm 파일에 있는 최대 라이브 버전 수를 설정합니다.RealmConfiguration.Builder
migration(RealmMigration migration)
마이그레이션이 필요한 경우RealmMigration
을(를) 실행하도록 설정합니다.RealmConfiguration.Builder
modules(Object baseModule, Object... additionalModules)
기존 모듈을 하나 이상의RealmModule
로 대체합니다.RealmConfiguration.Builder
name(String filename)
Realm 파일의 파일 이름을 설정합니다.RealmConfiguration.Builder
readOnly()
이를 설정하면 Realm이 읽기 전용이 되고 이 Realm에 대한 모든 쓰기 트랜잭션(write transaction)은IllegalStateException
을(를) 표시하여 실패합니다.RealmConfiguration.Builder
rxFactory(RxObservableFactory factory)
Realm 객체에서 Rx Observable을 생성하는 데 사용되는RxObservableFactory
를 설정합니다.RealmConfiguration.Builder
schemaVersion(long schemaVersion)
Realm의 스키마 버전을 설정합니다.
-
-
-
메서드 세부 정보
-
이름
public RealmConfiguration.Builder 이름(문자열 파일 이름)
Realm 파일의 파일 이름을 설정합니다.
-
디렉토리
public RealmConfiguration.Builder 디렉토리(파일 디렉토리)
Realm 파일이 저장될 디렉토리를 지정합니다. The default value iscontext.getFilesDir()
. 디렉토리가 존재하지 않으면 디렉토리가 생성됩니다.- 매개변수:
directory
- Realm 파일을 저장할 디렉토리입니다. 디렉토리는 쓰기 가능해야 합니다.- 예외 처리:
IllegalArgumentException
-directory
가 null인 경우, 쓰기 불가능 또는 파일입니다.
-
encryptionKey
public RealmConfiguration.Builder encryptionKey(byte[] 키)
Realm 파일을 암호화하고 해독하는 데 사용되는 64바이트 키를 설정합니다. Realm 파일을 암호화하고 해독하는 데 사용되는 64 바이트 키를 설정합니다.
-
스키마 버전
public RealmConfiguration.Builder schemaVersion(긴 schemaVersion)
Realm의 스키마 버전을 설정합니다. 이 값은 기존 Realm 파일의 스키마 버전과 동일하거나 그 이상이어야 합니다. 스키마 버전이 기존 Realm보다 높은 경우 마이그레이션이 필요합니다.마이그레이션 코드가 제공되지 않으면 Realm은
RealmMigrationNeededException
를 발생시킵니다.- 다음도 참조하세요.
migration(RealmMigration)
-
migration
public RealmConfiguration.Builder migration(RealmMigration migration)
마이그레이션이 필요한 경우RealmMigration
을(를) 실행하도록 설정합니다. 이 마이그레이션이 온디스크 스키마를 런타임 스키마로 업그레이드하지 못하면RealmMigrationNeededException
가 발생합니다.
-
deleteRealmIFMigrationNeded
public RealmConfiguration.Builder deleteRealmIFMigrationneeded()
이 값을 설정하면 마이그레이션 예외가 처리되는 방식이 변경됩니다.RealmMigrationNeededException
을(를) 발생시키는 대신 온디스크 Realm이 지워지고 새 Realm 스키마로 다시 생성됩니다.제공된 자산 파일이 마이그레이션에서 삭제되므로
assetFile(String)
을(를) 호출하여 자산 파일을 동시에 갖도록 구성할 수 없습니다.경고! 이로 인해 데이터가 손실됩니다.
- 예외 처리:
IllegalStateException
- 이전에assetFile(String)
를 호출하여 자산 파일을 사용하도록 구성된 경우.
-
inMemory
public RealmConfiguration.Builder inMemory()
이 옵션을 설정하면 디스크에 저장하는 대신 인메모리 Realm이 생성됩니다. 메모리가 부족한 경우 인메모리 Realm에서 여전히 디스크 공간을 사용할 수 있지만 Realm이 닫히면 인메모리 Realm에서 생성된 모든 파일이 삭제됩니다.메모리 내 Realm은 지속되지 않기 때문에 데이터를 지속하려면 특정 이름의 Realm 객체에 대한 닫히지 않은 참고를 하나 이상 보유하고 있어야 합니다.
-
모듈
public RealmConfiguration.Builder 모듈(객체 baseModule, 객체... additionalModule)
기존 모듈을 하나 이상의RealmModule
로 대체합니다. 이 방법을 사용하면 이 Realm의 현재 스키마가 제공된 모듈에서 정의된 스키마로 대체됩니다.프로젝트의 모든 Realm 클래스(종속성 제외)를 포함하는 기본 Realm 모듈에 대한 참고는
Realm.getDefaultModule()
을(를) 사용하여 찾을 수 있습니다. 따라서 다음 코드를 사용하여 앱 프로젝트의 스키마와 라이브러리 종속성을 결합합니다.builder.modules(Realm.getDefaultMode(), new MyLibraryModule());
- 매개변수:
baseModule
- 첫 번째 Realm 모듈(필수).additionalModules
- 추가 Realm 모듈- 예외 처리:
IllegalArgumentException
- 모듈 중 하나에RealmModule
주석이 없는 경우.- 다음도 참조하세요.
Realm.getDefaultModule()
-
addModule
public final RealmConfiguration.Builder addModule(Object module)
FIXME: 일시적으로 표시되는 DEBUG 메서드. 조건 없이 모듈을 추가합니다. 이미 정의된 모듈에 모듈을 추가합니다.
-
rxFactory
public RealmConfiguration.Builder rxFactory(@Nonnull RxObservableFactory 팩토리)
Realm 객체에서 Rx Observable을 생성하는 데 사용되는RxObservableFactory
를 설정합니다. 기본 팩토리는RealmObservableFactory
입니다.- 매개변수:
factory
- 사용할 팩토리입니다.
-
flowFactory
public RealmConfiguration.Builder flowFactory(@Nonnull FlowFactory 팩토리)
Realm 객체에서 코루틴 흐름을 만드는 데 사용되는FlowFactory
을(를) 설정합니다. 기본 팩토리는RealmFlowFactory
입니다.- 매개변수:
factory
- 사용할 팩토리입니다.
-
초기 데이터
public RealmConfiguration.Builder initialData(Realm.트랜잭션 트랜잭션)
초기 데이터를Realm
로 설정합니다. 이 트랜잭션은 데이터베이스 파일이 생성될 때 처음으로 실행되거나deleteRealmIfMigrationNeeded()
가 설정된 경우 데이터를 마이그레이션하는 동안에만 실행됩니다.- 매개변수:
transaction
- 실행할 트랜잭션입니다.
-
자산 파일
public RealmConfiguration.Builder 자산 파일(문자열 자산 파일)
지정된 자산 파일 경로에서 Realm 파일을 복사합니다.Realm을 처음 열 때 빈 파일을 만드는 대신 제공된 자산 파일에서 Realm 파일을 복사하여 대신 사용합니다.
이 작업을 수행하면 복사된 파일이 삭제되기 때문에
deleteRealmIfMigrationNeeded()
작업과 함께 사용할 수 없습니다.경고: 이 작업은 시간이 오래 걸릴 수 있으므로 백그라운드 스레드에서 수행하는 것이 좋습니다.
- 매개변수:
assetFile
- 자산 데이터베이스 파일의 경로입니다.- 예외 처리:
IllegalStateException
-deleteRealmIfMigrationNeeded()
을(를) 호출하여 스키마를 지우도록 구성된 경우.
-
읽기 전용
public RealmConfiguration.Builder readOnly()
이를 설정하면 Realm이 읽기 전용이 되고 이 Realm에 대한 모든 쓰기 트랜잭션(write transaction)은IllegalStateException
을(를) 표시하여 실패합니다.이는 특히
이 프로세스에서 Realm을 읽기 전용으로 표시하는 것은 Realm에만 적용됩니다. 다른 프로세스는 여전히 Realm에 쓸 수 있습니다.initialData(Realm.Transaction)
이(가) 읽기 전용 Realm과 함께 작동하지 않으며 이를 설정하면IllegalStateException
이(가) 발생한다는 MEAN입니다.
-
compactOnLaunch
public RealmConfiguration.Builder compactOnLaunch()
Realm 파일이 너무 커져서 상당한 양의 공간을 복구할 수 있는 경우 Realm 파일을 압축하게 됩니다. 자세한 내용은DefaultCompactOnLaunchCallback
를 참조하세요.
-
compactOnLaunch
public RealmConfiguration.Builder compactOnLaunch(CompactOnLaunchCallback compactOnLaunch)
사용자에게 반환되기 전에 Realm 파일을 압축해야 하는지 여부를 결정하기 위해 설정합니다. 총 파일 크기(데이터 + 여유 공간)와 파일의 데이터가 사용한 바이트가 전달됩니다.- 매개변수:
compactOnLaunch
- 프로세스 수명 동안 처음으로 Realm을 열 때 사용자에게 반환되기 전에 압축해야 하는지 여부를 결정하기 위해 호출되는 콜백입니다. 총 파일 크기(데이터 + 여유 공간)와 파일의 데이터가 사용한 바이트가 전달됩니다.
-
maxNumberOfActiveVersions
public RealmConfiguration.Builder maxNumberOfActiveVersions(긴 숫자)
더 많은 데이터를 쓰려고 할 때IllegalStateException
가 발생하기 전에 Realm 파일에 있는 최대 라이브 버전 수를 설정합니다.Realm은 다양한 버전의 Realm 객체를 동시에 처리할 수 있습니다. 예를 들면 다음과 같습니다. Realm이 여러 스레드에서 열려 있거나 데이터가 파일에 기록되는 동안 객체가 정지되는 경우에 발생합니다.
정상적인 상황에서는 문제가 되지 않지만 활성 버전 수가 너무 많아지면 디스크의 파일 크기에 부정적인 영향을 미칩니다. 따라서 이 매개변수를 설정하면 매우 큰 Realm이 발생할 수 있는 Realm 사용을 방지할 수 있습니다.
- 매개변수:
number
- 예외가 발생하기 전의 최대 활성 버전 수입니다.- 다음도 참조하세요.
- FAQ
-
allowWritesOnUiThread
public RealmConfiguration.Builder allowWritesOnUiThread(부울 allowWritesOnUiThread)
UI 스레드에서Realm.executeTransaction(io.realm.Realm.Transaction)
에 대한 호출을 허용할지 여부를 설정합니다.경고: Realm은 사용자가 이 메서드를 명시적으로 옵트인하지 않는 한 메인 스레드에서 동기 트랜잭션을 실행하는 것을 허용하지 않습니다.
executeTransaction
에 대한 호출을 UI가 아닌 스레드로 전환하거나Realm.executeTransactionAsync(io.realm.Realm.Transaction)
를 사용하는 것이 좋습니다.
-
allowQueriesOnUiThread
public RealmConfiguration.Builder allowQueriesOnUiThread(부울 allowQueriesOnUiThread)
UI 스레드에서RealmQuery
을(를) 실행할 수 있는지 여부를 설정합니다.기본적으로 Realm은 메인 스레드에서 쿼리를 허용합니다. 그러나 이렇게 하면 애플리케이션에서 프레임 드롭이나 ANR이 발생할 수 있습니다. 쿼리를 UI가 아닌 스레드로 전환하거나
RealmQuery.findAllAsync()
또는RealmQuery.findFirstAsync()
를 사용하는 것이 좋습니다.
-
빌드
public RealmConfiguration build()
빌더 매개변수를 기반으로 RealmConfiguration을 생성합니다.- 반환합니다:
- 생성된
RealmConfiguration
.
-
-