SyncConfiguration.Builder 클래스

  • 클래스를 둘러싸는 경우:
    SyncConfiguration

    public static final class SyncConfiguration.Builder
    extends Object
    SyncConfiguration의 인스턴스를 유창하게 구성하는 데 사용되는 빌더입니다.
    • 생성자 세부 정보

      • 빌더

        public Builder​(사용자 사용자)
        지정된 사용자와의 Flexible Sync SyncConfiguration 에 대한 빌더의 인스턴스를 생성합니다.
        매개변수:
        user - Realm 앱에 액세스하는 데 사용할 사용자입니다.
      • 빌더

        public 빌더​(사용자 사용자,
                       @Nullable
                       String partitionValue)
        지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더의 인스턴스를 만듭니다.
        매개변수:
        user - Realm 앱에 액세스하는 데 사용할 사용자입니다.
        partitionValue - 동기화될 원격 Realm을 식별하는 파티션 값입니다.
      • 빌더

        공개 빌더​(사용자 사용자,
                       @Nullable
                       ObjectId partitionValue)
        지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더의 인스턴스를 만듭니다.
        매개변수:
        user - Realm 앱에 액세스하는 데 사용할 사용자입니다.
        partitionValue - 동기화될 원격 Realm을 식별하는 파티션 값입니다.
      • 빌더

        public 빌더​(사용자 사용자,
                       @Nullable
                       Integer partitionValue)
        지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더의 인스턴스를 만듭니다.
        매개변수:
        user - Realm 앱에 액세스하는 데 사용할 사용자입니다.
        partitionValue - 동기화될 원격 Realm을 식별하는 파티션 값입니다.
      • 빌더

        public 빌더​(사용자 사용자,
                       @Nullable
                       Long partitionValue)
        지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더의 인스턴스를 만듭니다.
        매개변수:
        user - Realm 앱에 액세스하는 데 사용할 사용자입니다.
        partitionValue - 동기화될 원격 Realm을 식별하는 파티션 값입니다.
      • 빌더

        public 빌더​(사용자 사용자,
                       @Nullable
                       UUID partitionValue)
        지정된 사용자 및 파티션 값을 사용하여 파티션 기반 동기화 SyncConfiguration 에 대한 빌더의 인스턴스를 만듭니다.
        매개변수:
        user - Realm 앱에 액세스하는 데 사용할 사용자입니다.
        partitionValue - 동기화될 원격 Realm을 식별하는 파티션 값입니다.
    • 메서드 세부 정보

      • 이름

        공개 SyncConfiguration.Builder 이름(문자열 파일 이름)
        이 장치에 있는 Realm 파일의 파일 이름을 설정합니다.
        매개변수:
        filename - Realm 파일의 이름입니다.
      • encryptionKey

        공개 SyncConfiguration.Builder encryptionKey​(byte[] 키)
        Realm 파일을 암호화하고 해독하는 데 사용되는 64 바이트 키를 설정합니다.
        매개변수:
        key - 암호화 키.
        예외 처리:
        IllegalArgumentException - 키가 유효하지 않은 경우.
      • 스키마 버전

        public SyncConfiguration.Builder schemaVersion​(긴 schemaVersion)
        Realm의 스키마 버전을 설정합니다.

        동기화된 Realm은 수동 마이그레이션 없이 적용할 수 있는 추가 스키마 변경만 지원합니다. 스키마 버전은 기본 스토리지 계층에 인덱스를 제거하거나 추가하는 표시로만 사용됩니다. 제공된 스키마 버전이 Realm 파일의 버전과 다른 경우 다시 계산됩니다. 경고: 여기에 삽입된 값이 BaseRealm.getVersion() 에서 반환된 값과 동일하다는 보장이 없습니다. 동기화된 Realm의 특성으로 인해 이 값은 더 높을 수도 있고 더 낮을 수도 있습니다.

        • 이 schemaVersion이 사용된 후 Lesser schemaVersion 를 가진 다른 클라이언트가 처음으로 서버에 연결된 경우 이 값이 더 낮습니다.
        • 이 Realm이 생성된 후 더 높은 schemaVersion 을(를) 가진 다른 클라이언트가 서버에 연결되면 이 값이 더 높아집니다.
        매개변수:
        schemaVersion - 스키마 버전입니다.
        예외 처리:
        IllegalArgumentException - 스키마 버전이 유효하지 않은 경우.
      • 모듈

        공개 SyncConfiguration.Builder 모듈​(객체 baseModule,
                                                 객체... additionalModule)
        기존 모듈을 하나 이상의 RealmModule로 대체합니다. 이 방법을 사용하면 이 Realm의 현재 스키마가 제공된 모듈에서 정의된 스키마로 대체됩니다.

        프로젝트의 모든 Realm 클래스(종속성 제외)를 포함하는 기본 Realm 모듈에 대한 참고는 Realm.getDefaultModule() 을(를) 사용하여 찾을 수 있습니다. 따라서 다음 코드를 사용하여 앱 프로젝트의 스키마와 라이브러리 종속성을 결합합니다.

        builder.modules(Realm.getDefaultMode(), new MyLibraryModule());

        매개변수:
        baseModule - 첫 번째 Realm 모듈(필수).
        additionalModules - 추가 Realm 모듈
        예외 처리:
        IllegalArgumentException - 모듈 중 하나에 RealmModule 주석이 없는 경우.
        다음도 참조하세요.
        Realm.getDefaultModule()
      • 모듈

        public SyncConfiguration.Builder modules​(Iterable<Object> modules)
        기존 모듈을 하나 이상의 RealmModule로 대체합니다. 이 방법을 사용하면 이 Realm의 현재 스키마가 제공된 모듈에서 정의된 스키마로 대체됩니다.

        프로젝트의 모든 Realm 클래스(종속성 제외)를 포함하는 기본 Realm 모듈에 대한 참고는 Realm.getDefaultModule() 을(를) 사용하여 찾을 수 있습니다. 따라서 다음 코드를 사용하여 앱 프로젝트의 스키마와 라이브러리 종속성을 결합합니다.

        builder.modules(Realm.getDefaultMode(), new MyLibraryModule());

        매개변수:
        modules - 첫 번째 Realm 모듈(필수)의 모듈 목록입니다.
        예외 처리:
        IllegalArgumentException - 모듈 중 하나에 RealmModule 주석이 없는 경우.
        다음도 참조하세요.
        Realm.getDefaultModule()
      • inMemory

        public SyncConfiguration.Builder inMemory()
        이 옵션을 설정하면 디스크에 저장하는 대신 인메모리 Realm이 생성됩니다. 메모리가 부족한 경우 인메모리 Realm에서 여전히 디스크 공간을 사용할 수 있지만 Realm이 닫히면 인메모리 Realm에서 생성된 모든 파일이 삭제됩니다.

        메모리 내 Realm은 지속되지 않기 때문에 데이터를 지속하려면 특정 이름의 Realm 객체에 대한 닫히지 않은 참고를 하나 이상 보유하고 있어야 합니다.

      • syncClientResetStrategy

        public SyncConfiguration.Builder syncClientResetStrategy​(수동 복구UnsyncedChangesStrategy 핸들러)
        클라이언트 재설정이 발생하는 경우 핸들러를 설정합니다. 핸들러가 설정되지 않고 클라이언트 재설정이 발생하면 오류가 기록됩니다.
        매개변수:
        handler - 클라이언트 재설정의 경우 사용자 지정 수동 처리기.
      • syncClientResetStrategy

        public SyncConfiguration.Builder syncClientResetStrategy​(DiscardUnsyncedChangesStrategy 핸들러)
        클라이언트 재설정이 발생하는 경우 핸들러를 설정합니다. 핸들러가 설정되지 않고 클라이언트 재설정이 발생하면 오류가 기록됩니다. 이 전략은 파티션 기반 동기화를 사용하는 동기화된 Realm에만 사용할 수 있습니다. Flexible Sync를 사용하는 Realm은 현재 syncClientResetStrategy(ManuallyRecoverUnsyncedChangesStrategy) 만 지원합니다.
        매개변수:
        handler - 클라이언트 재설정의 경우 사용자 지정 원활한 손실 처리기.
      • waitForInitialRemoteData

        공개 SyncConfiguration.Builder waitForInitialRemoteData()
        이 옵션을 설정하면 Realm이 처음 열릴 때 서버에서 알려진 모든 변경 사항을 다운로드하게 됩니다. 모든 데이터가 다운로드될 때까지 Realm이 열리지 않습니다. 즉, 장치가 오프라인 상태이면 Realm이 열리지 않습니다.

        모든 변경 사항을 다운로드하는 것은 시간이 오래 걸리는 작업일 수 있으므로 UI 스레드를 차단할 수 있으므로 이 설정이 활성화된 Realms는 백그라운드 스레드에서 또는 UI 스레드에서 Realm.getInstanceAsync(RealmConfiguration, Realm.Callback) 을(를) 사용해서만 열어야 합니다.

        이 검사는 Realm이 처음 생성될 때만 적용됩니다. Realm에 최신 변경 사항이 있는지 확인하려면 SyncSession.downloadAllServerChanges() 을 사용합니다.

      • waitForInitialRemoteData

        public SyncConfiguration.Builder waitForInitialRemoteData(긴 시간 제한,
                                                                  TimeUnit 단위)
        이 옵션을 설정하면 Realm이 처음 열릴 때 서버에서 알려진 모든 변경 사항을 다운로드하게 됩니다. 모든 데이터가 다운로드될 때까지 Realm이 열리지 않습니다. 즉, 장치가 오프라인 상태이면 Realm이 열리지 않습니다.

        모든 변경 사항을 다운로드하는 것은 시간이 오래 걸리는 작업일 수 있으므로 UI 스레드를 차단할 수 있으므로 이 설정이 활성화된 Realms는 백그라운드 스레드에서 또는 UI 스레드에서 Realm.getInstanceAsync(RealmConfiguration, Realm.Callback) 을(를) 사용해서만 열어야 합니다.

        이 검사는 Realm이 처음 생성될 때만 적용됩니다. Realm에 최신 변경 사항이 있는지 확인하려면 SyncSession.downloadAllServerChanges() 을 사용합니다.

        매개변수:
        timeout - DownloadingRealmInterruptedException 가 발생하기 전에 다운로드가 완료될 때까지 기다리는 시간입니다.
        unit - 시간 초과를 정의하는 데 사용되는 시간 단위입니다.
      • 읽기 전용

        공개 SyncConfiguration.Builder readOnly()
        이를 설정하면 Realm이 읽기 전용이 되고 이 Realm에 대한 모든 쓰기 트랜잭션(write transaction)은 IllegalStateException 을(를) 표시하여 실패합니다.

        이는 특히 initialData(Realm.Transaction) 이(가) 읽기 전용 Realm과 함께 작동하지 않으며 이를 설정하면 IllegalStateException 이(가) 발생한다는 MEAN입니다.

        이 프로세스에서 Realm을 읽기 전용으로 표시하는 것은 Realm에만 적용됩니다. 다른 프로세스 및 기기는 여전히 Realm에 쓸 수 있습니다.
      • compactOnLaunch

        public SyncConfiguration.Builder compactOnLaunch(CompactOnLaunchCallback compactOnLaunch)
        사용자에게 반환되기 전에 Realm 파일을 압축해야 하는지 여부를 결정하기 위해 설정합니다. 총 파일 크기(데이터 + 여유 공간)와 파일의 데이터가 사용한 바이트가 전달됩니다.
        매개변수:
        compactOnLaunch - 프로세스 수명 동안 처음으로 Realm을 열 때 사용자에게 반환되기 전에 압축해야 하는지 여부를 결정하기 위해 호출되는 콜백입니다. 총 파일 크기(데이터 + 여유 공간)와 파일의 데이터가 사용한 바이트가 전달됩니다.
      • 자산 파일

        public SyncConfiguration.Builder 자산 파일​(문자열 자산 파일)
        Realm을 처음 열 때 빈 파일을 만드는 대신 제공된 자산 파일에서 Realm 파일을 복사하여 대신 사용합니다.

        이를 사용하여 Realm을 데이터로 미리 채울 수 있으므로 서버에서 다운로드할 필요가 없습니다.

        제공된 Realm 파일은 지정된 사용자에 대해 동기화된 유효한 Realm이어야 하며 BaseRealm.writeCopyTo(File) API를 사용하여 생성된 것이어야 합니다.

        경고: 이 작업은 시간이 오래 걸릴 수 있으므로 백그라운드 스레드에서 수행하는 것이 좋습니다.

        매개변수:
        assetFile - 자산 데이터베이스 파일의 경로입니다.
        예외 처리:
        IllegalStateException - 이 Realm이 inMemory() 로도 표시된 경우.
      • URLPrefix

        public SyncConfiguration.Builder URLPrefix​(문자열 URLPrefix)
        MongoDB Realm에 대한 동기화 연결을 시작하는 WebSocket 요청의 경로 앞에 추가되는 접두사입니다. 지정된 값은 서버의 구성과 일치해야 하며, 그렇지 않으면 장치가 연결을 생성할 수 없습니다. 이 값은 선택 사항이며 특정 방화벽 규칙에 필요한 경우에만 설정해야 합니다.
        매개변수:
        urlPrefix - 동기화 연결 URL에 추가할 접두사입니다.
      • maxNumberOfActiveVersions

        public SyncConfiguration.Builder maxNumberOfActiveVersions(긴 숫자)
        더 많은 데이터를 쓰려고 할 때 IllegalStateException 가 발생하기 전에 Realm 파일에 있는 최대 라이브 버전 수를 설정합니다.

        Realm은 다양한 버전의 Realm 객체를 동시에 처리할 수 있습니다. 이는 Realm이 여러 다른 스레드에서 열려 있거나 데이터가 파일에 기록되는 동안 객체를 동결하는 경우 발생할 수 있습니다.

        정상적인 상황에서는 문제가 되지 않지만 활성 버전 수가 너무 많아지면 디스크의 파일 크기에 부정적인 영향을 미칩니다. 따라서 이 매개변수를 설정하면 매우 큰 Realm이 발생할 수 있는 Realm 사용을 방지할 수 있습니다.

        참고로 이 장치에 다른 장치의 변경 사항이 통합되면 버전 번호도 증가하므로 활성 버전 수도 동일한 Realm에 쓰는 다른 장치가 수행하는 작업에 따라 달라집니다.

        매개변수:
        number - 예외가 발생하기 전의 최대 활성 버전 수입니다.
        다음도 참조하세요.
        FAQ
      • allowQueriesOnUiThread

        public SyncConfiguration.Builder allowQueriesOnUiThread​(부울 allowQueriesOnUiThread)
        UI 스레드에서 RealmQueries 허용 여부를 설정합니다.

        기본적으로 Realm은 메인 스레드에서 쿼리를 허용합니다. 그러나 이렇게 하면 애플리케이션에서 프레임 드롭이나 ANR이 발생할 수 있습니다. 쿼리를 UI가 아닌 스레드로 전환하거나 RealmQuery.findAllAsync() 또는 RealmQuery.findFirstAsync() 를 사용하는 것이 좋습니다.

      • 빌드

        public SyncConfiguration build()
        빌더 매개변수를 기반으로 RealmConfiguration을 생성합니다.
        반환합니다:
        생성된 SyncConfiguration.
        예외 처리:
        IllegalStateException - 구성 매개변수가 유효하지 않거나 일치하지 않는 경우.