Classe SyncConfiguration.Builder

  • Classe anexa:
    SyncConfiguration

    public static final class SyncConfiguration.Builder
    extends Object
    O construtor costumava construir instâncias de uma SyncConfiguration de forma fluente.
    • Detalhes do construtor

      • Construtor

        construtor público (usuário usuário)
        Cria uma instância do construtor para um Flexible Sync SyncConfiguration com o usuário fornecido.
        Parâmetros:
        user - O usuário que será usado para acessar o aplicativo Realm.
      • Construtor

        construtor público (usuário ,
                       @Nullable
                       String partitionValue)
        Cria uma instância do construtor para uma sincronização baseada em partição SyncConfiguration com o usuário fornecido e o valor da partição.
        Parâmetros:
        user - O usuário que será usado para acessar o aplicativo Realm.
        partitionValue - O valor da partição que identifica o Realm remoto que será sincronizado.
      • Construtor

        construtor público (usuário usuário,
                       @Nullable
                       ObjectId partitionValue)
        Cria uma instância do construtor para uma sincronização baseada em partição SyncConfiguration com o usuário fornecido e o valor da partição.
        Parâmetros:
        user - O usuário que será usado para acessar o aplicativo Realm.
        partitionValue - O valor da partição que identifica o Realm remoto que será sincronizado.
      • Construtor

        construtor público (usuário ,
                       @Nullable
                       Integer partiçãoValue)
        Cria uma instância do construtor para uma sincronização baseada em partição SyncConfiguration com o usuário fornecido e o valor da partição.
        Parâmetros:
        user - O usuário que será usado para acessar o aplicativo Realm.
        partitionValue - O valor da partição que identifica o Realm remoto que será sincronizado.
      • Construtor

        construtor público (usuário usuário,
                       @Nullable
                       Long partitionValue)
        Cria uma instância do construtor para uma sincronização baseada em partição SyncConfiguration com o usuário fornecido e o valor da partição.
        Parâmetros:
        user - O usuário que será usado para acessar o aplicativo Realm.
        partitionValue - O valor da partição que identifica o Realm remoto que será sincronizado.
      • Construtor

        Construtor público (usuário usuário,
                       @Nullable
                       UUID partitionValue)
        Cria uma instância do construtor para uma sincronização baseada em partição SyncConfiguration com o usuário fornecido e o valor da partição.
        Parâmetros:
        user - O usuário que será usado para acessar o aplicativo Realm.
        partitionValue - O valor da partição que identifica o Realm remoto que será sincronizado.
    • Detalhes do método

      • name

        nome público do SyncConfiguration.Builder ( Nome do arquivo da string )
        Define o nome do Arquivo de Realm neste dispositivo.
        Parâmetros:
        filename - nome do Arquivo de Realm.
      • encryptionKey

        public SyncConfiguration.Builder encryptionKey(byte[] chave)
        Define a chave de 64 bytes usada para criptografar e descriptografar o Arquivo de Realm.
        Parâmetros:
        key - a chave de criptografia.
        Lançamentos:
        IllegalArgumentException - se a chave for inválida.
      • Versão do esquema

        public SyncConfiguration.Builder schemaVersion(long schemaVersion)
        Define a versão do esquema do Realm.

        Os domínios sincronizados suportam apenas alterações de esquema aditivas que podem ser aplicadas sem exigir uma migração manual. A versão do esquema será usada somente como uma indicação para a camada de armazenamento subjacente para remover ou adicionar índices. Eles serão recalculados se a versão do esquema fornecida for diferente da versão no Arquivo de Realm. AVISO: Não há garantia de que o valor inserido aqui seja o mesmo retornado por BaseRealm.getVersion(). Devido à natureza dos Realms sincronizados, o valor pode ser maior e menor.

        • Ele será mais baixo se outro cliente com um schemaVersion menor se conectar ao servidor pela primeira vez após essa schemaVersion ter sido usada.
        • Ele será maior se outro cliente com um schemaVersion superior for conectado ao servidor após a criação desse Realm.
        Parâmetros:
        schemaVersion - a versão do esquema.
        Lançamentos:
        IllegalArgumentException - se a versão do esquema for inválida.
      • módulos

        módulos SyncConfiguration.Builder públicos (objeto baseModule,
                                                 objeto...
        Substitui o(s) módulo(s) existente(s) por um ou mais RealmModules. A utilização deste método substituirá o esquema atual deste Realm pelo esquema definido pelos módulos fornecidos.

        Uma referência ao módulo Realm padrão contendo todas as classes Realm no projeto (mas não dependências), pode ser encontrada utilizando Realm.getDefaultModule(). A combinação do esquema do projeto do aplicativo e de uma dependência da biblioteca é feita com o seguinte código:

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

        Parâmetros:
        baseModule - o primeiro módulo Realm (obrigatório).
        additionalModules - os módulos adicionais do Realm
        Lançamentos:
        IllegalArgumentException - se algum dos módulos não tiver a anotação RealmModule .
        Veja também:
        Realm.getDefaultModule()
      • módulos

        public SyncConfiguration.Builder modules​(Iterable<Object> modules)
        Substitui o(s) módulo(s) existente(s) por um ou mais RealmModules. A utilização deste método substituirá o esquema atual deste Realm pelo esquema definido pelos módulos fornecidos.

        Uma referência ao módulo Realm padrão contendo todas as classes Realm no projeto (mas não dependências), pode ser encontrada utilizando Realm.getDefaultModule(). A combinação do esquema do projeto do aplicativo e de uma dependência da biblioteca é feita com o seguinte código:

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

        Parâmetros:
        modules - lista de módulos do primeiro módulo Realm (obrigatório).
        Lançamentos:
        IllegalArgumentException - se algum dos módulos não tiver a anotação RealmModule .
        Veja também:
        Realm.getDefaultModule()
      • inMemory

        public SyncConfiguration.Builder inMemory()
        Definir isso criará um Realm na memória em vez de salvá-lo no disco. Os Realms na memória ainda podem usar espaço em disco se a memória estiver fraca, mas todos os arquivos criados por um Realm na memória serão excluídos quando o Realm for fechado.

        Observe que, como os Realms na memória não são persistentes, você deve manter pelo menos uma referência não fechada ao Objeto de Realm na memória com o nome específico, enquanto quiser que os dados durem.

      • erroHandler

        public SyncConfiguration.Builder errorHandler<SyncSession.ErrorHandler errorHandler)
        Define o manipulador de erros usado por esta configuração.

        Somente erros não manipulados pelo SyncPolicy definido serão relatados a este manipulador de erros.

        Parâmetros:
        errorHandler - manipulador de erros usado para relatar erros ao se comunicar com o servidor de Objeto de Realm.
        Lançamentos:
        IllegalArgumentException - se null for fornecido como um manipulador de erros.
      • syncClientResetStrategy

        public SyncConfiguration.Builder syncClientResetStrategy (manipulador ManuallyRecuperUnsyncedChangesStrategy )
        Define o manipulador para quando ocorre um reinício do cliente. Se nenhum manipulador estiver definido, e o erro for registrado quando ocorrer um reinício do cliente.
        Parâmetros:
        handler - manipulador manual personalizado no caso de um reinício do cliente.
      • syncClientResetStrategy

        public SyncConfiguration.Builder syncClientResetStrategy (manipulador DiscardUnsyncedChangesStrategy )
        Define o manipulador para quando ocorre um reinício do cliente. Se nenhum manipulador estiver definido, e o erro for registrado quando ocorrer um reinício do cliente. Essa estratégia só está disponível para domínios sincronizados usando sincronização baseada em partição. Os domínios que usam a Flexible Sync atualmente suportam apenas syncClientResetStrategy(ManuallyRecoverUnsyncedChangesStrategy).
        Parâmetros:
        handler - manipulador de perdas contínuo personalizado no caso de um reinício do cliente.
      • waitForInitialRemoteData

        public SyncConfiguration.Builder waitForInitialRemoteData()
        Configurar isso fará com que o Realm baixe todas as alterações conhecidas do servidor na primeira vez que um Realm for aberto. O Realm não será aberto até que todos os dados tenham sido baixados. Isso significa que, se um dispositivo estiver off-line, o Realm não será aberto.

        Como o download de todas as alterações pode ser uma operação demorada que pode bloquear o thread da interface do usuário, os Realms com essa configuração habilitada só devem ser abertos em threads de background ou com Realm.getInstanceAsync(RealmConfiguration, Realm.Callback) no thread da interface do usuário.

        Essa verificação só é imposta na primeira vez que um Realm é criado. Se, de outra forma, você quiser garantir que um Realm tenha as alterações mais recentes, use SyncSession.downloadAllServerChanges().

      • waitForInitialRemoteData

        public SyncConfiguration.Builder waitForInitialRemoteData(tempo limite longo, unidade TimeUnit )
        Configurar isso fará com que o Realm baixe todas as alterações conhecidas do servidor na primeira vez que um Realm for aberto. O Realm não será aberto até que todos os dados tenham sido baixados. Isso significa que, se um dispositivo estiver off-line, o Realm não será aberto.

        Como o download de todas as alterações pode ser uma operação demorada que pode bloquear o thread da interface do usuário, os Realms com essa configuração habilitada só devem ser abertos em threads de background ou com Realm.getInstanceAsync(RealmConfiguration, Realm.Callback) no thread da interface do usuário.

        Essa verificação só é imposta na primeira vez que um Realm é criado. Se, de outra forma, você quiser garantir que um Realm tenha as alterações mais recentes, use SyncSession.downloadAllServerChanges().

        Parâmetros:
        timeout - quanto tempo esperar para que o download seja concluído antes que um DownloadingRealmInterruptedException seja lançado.
        unit - a unidade de tempo usada para definir o tempo limite.
      • Somente leitura

        public SyncConfiguration.Builder readOnly ()
        Definir isso fará com que o Realm se torne somente leitura e todas as transação de escrita feitas nesse Realm falharão com um IllegalStateException.

        Isso, em particular, média que initialData(Realm.Transaction) não funcionará em combinação com um Realm somente para leitura e a configuração disso resultará na liberação de um IllegalStateException .

        Marcar um Realm como somente leitura se aplica apenas ao Realm nesse processo. Outros processos e dispositivos ainda podem escrever no Realm.
      • compactaOnLaunch

        public SyncConfiguration.Builder compactaOnLaunch()
        Definir isso fará com que o Realm compactará o Arquivo de Realm se o Arquivo de Realm ficar muito grande e uma quantidade significativa de espaço puder ser recuperada. Consulte DefaultCompactOnLaunchCallback para obter detalhes.
      • compactaOnLaunch

        public SyncConfiguration.Builder compactaOnLaunch(CompactOnLaunchCallback compactaOnLaunch)
        Define isso para determinar se o Arquivo de Realm deve ser compactado antes de retornar ao usuário. É passado o tamanho total do arquivo (dados + espaço livre) e os bytes usados pelos dados no arquivo.
        Parâmetros:
        compactOnLaunch - uma chamada de resposta chamada ao abrir um Realm pela primeira vez durante a vida de um processo para determinar se ele deve ser compactado antes de ser devolvido ao usuário. É passado o tamanho total do arquivo (dados + espaço livre) e os bytes usados pelos dados no arquivo.
      • ativoFile

        public SyncConfiguration.Builder ativoFile(String ativoFile)
        Ao abrir o Realm pela primeira vez, em vez de criar um arquivo vazio, o Arquivo de Realm será copiado do arquivo de ativo fornecido e usado em seu lugar.

        Isso pode ser usado para pré-preencher o Realm com dados, para que não precise ser baixado do servidor.

        O Arquivo de Realm fornecido deve ser um Realm sincronizado válido para o usuário fornecido e deve ter sido criado usando a API BaseRealm.writeCopyTo(File) .

        AVISO: essa pode ser uma operação demorada e, de preferência, deve ser feita em um thread em segundo plano.

        Parâmetros:
        assetFile - caminho para o arquivo do banco de dados do ativo.
        Lançamentos:
        IllegalStateException - se este Realm também estiver marcado como inMemory().
      • URLPrefix

        public SyncConfiguration.Builder urlPrefix(String URLPrefix)
        O prefixo que é anexado ao caminho na solicitação do WebSocket que inicia uma conexão de sincronização com o MongoDB Realm. O valor especificado deve corresponder à configuração do servidor, caso contrário, o dispositivo não poderá criar uma conexão. Esse valor é opcional e só deve ser definido se uma regra de firewall específica exigir isso.
        Parâmetros:
        urlPrefix - O prefixo a ser anexado à URL da conexão de sincronização.
      • maxNumberOfAtiveVersions

        public SyncConfiguration.Builder maxNumberOfAtiveVersions(número longo)
        Define o número máximo de versões ativas no Arquivo de Realm antes que um IllegalStateException seja lançado ao tentar gravar mais dados.

        O Realm é capaz de lidar simultaneamente com muitas versões diferentes de Objeto de Realm. Isso pode acontecer se você tiver um Realm aberto em muitos threads diferentes ou estiver congelando objetos enquanto os dados estão sendo gravados no arquivo.

        Em circunstâncias normais, isso não é um problema, mas se o número de versões ativas aumentar demais, isso terá um efeito negativo no tamanho do arquivo no disco. A definição desses parâmetros pode, portanto, ser usada para evitar usos do Realm que podem resultar em Realms muito grandes.

        Observe que o número da versão também aumentará quando alterações de outros dispositivos forem integradas neste dispositivo, portanto, o número de versões ativas também dependerá do que os outros dispositivos que gravam no mesmo Realm estão fazendo.

        Parâmetros:
        number - o número máximo de versões ativas antes que uma exceção seja lançada.
        Veja também:
        Perguntas frequentes
      • allowQueriesOnUiThread

        public SyncConfiguration.Builder allowQueriesOnUiThread(boolean allowQueriesOnUiThread)
        Define se RealmQueries é permitido ou não a partir do thread da UI.

        Por padrão, o Realm permite query na thread principal. No entanto, ao fazer isso, seu aplicativo pode sofrer uma queda de armações ou até mesmo ANRs. Recomendamos direcionar query para threads que não sejam da interface do usuário ou, alternativamente, usar RealmQuery.findAllAsync() ou RealmQuery.findFirstAsync().