Classe RealmConfiguration.Builder
- java.lang.Object
-
- io.realm.RealmConfiguration.Builder
-
- Classe anexa:
- RealmConfiguration
public static class RealmConfiguration.Builder extends Object
RealmConfiguration.Builder usado para construir instâncias de um RealmConfiguration de forma fluente.
-
-
Resumo do construtor
Construtores Constructor Descrição Builder()
Cria uma instância do Construtor para o RealmConfiguration.
-
Resumo do método
Todos os métodos Métodos de instância Métodos concretos Modificador e tipo Método Descrição RealmConfiguration.Builder
addModule(Object module)
FIXME: Método DEBUG visível temporariamente.RealmConfiguration.Builder
allowQueriesOnUiThread(boolean allowQueriesOnUiThread)
Define se umRealmQuery
pode ou não ser iniciado a partir do thread da interface do usuário.RealmConfiguration.Builder
allowWritesOnUiThread(boolean allowWritesOnUiThread)
Define se as chamadas paraRealm.executeTransaction(io.realm.Realm.Transaction)
são permitidas ou não a partir do thread da UI.RealmConfiguration.Builder
assetFile(String assetFile)
Copia o Arquivo de Realm do caminho de arquivo de ativo fornecido.RealmConfiguration
build()
Cria o RealmConfiguration com base nos parâmetros do construtor.RealmConfiguration.Builder
compactOnLaunch()
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.RealmConfiguration.Builder
compactOnLaunch(CompactOnLaunchCallback compactOnLaunch)
Define isso para determinar se o Arquivo de Realm deve ser compactado antes de retornar ao usuário.RealmConfiguration.Builder
deleteRealmIfMigrationNeeded()
Definir isso mudará o comportamento de como as exceções de migração são tratadas.RealmConfiguration.Builder
directory(File directory)
Especifica o diretório onde o Arquivo de Realm será salvo.RealmConfiguration.Builder
encryptionKey(byte[] key)
Define a chave de 64 bytes usada para criptografar e descriptografar o Arquivo de Realm.RealmConfiguration.Builder
flowFactory(FlowFactory factory)
Define oFlowFactory
usado para criar Fluxos de corrotina a partir de Objeto de Realm.RealmConfiguration.Builder
initialData(Realm.Transaction transaction)
Define os dados iniciais emRealm
.RealmConfiguration.Builder
inMemory()
Definir isso criará um Realm na memória em vez de salvá-lo no disco.RealmConfiguration.Builder
maxNumberOfActiveVersions(long number)
Define o número máximo de versões ativas no Arquivo de Realm antes que umIllegalStateException
seja lançado ao tentar gravar mais dados.RealmConfiguration.Builder
migration(RealmMigration migration)
Define oRealmMigration
a ser executado se uma migração for necessária.RealmConfiguration.Builder
modules(Object baseModule, Object... additionalModules)
Substitui o(s) módulo(s) existente(s) por um ou maisRealmModule
s.RealmConfiguration.Builder
name(String filename)
Define o nome do Arquivo de Realm.RealmConfiguration.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 umIllegalStateException
.RealmConfiguration.Builder
rxFactory(RxObservableFactory factory)
Define oRxObservableFactory
usado para criar Observables Rx a partir de Objeto de Realm.RealmConfiguration.Builder
schemaVersion(long schemaVersion)
Define a versão do esquema do Realm.
-
-
-
Detalhes do construtor
-
Construtor
construtor público()
Cria uma instância do Construtor para o RealmConfiguration.Isso usará o diretório interno do aplicativo para armazenar o Arquivo de Realm. Isso não requer nenhuma permissão adicional. O local padrão é
/data/data/<packagename>/files
, mas pode mudar dependendo das implementações do fornecedor do Android.
-
-
Detalhes do método
-
name
nome público do RealmConfiguration.Builder (nome do arquivo da string )
Define o nome do Arquivo de Realm.
-
Diretório
diretório público RealmConfiguration.Builder (diretório de arquivos )
Especifica o diretório onde o Arquivo de Realm será salvo. O valor padrão écontext.getFilesDir()
. Se o diretório não existir, ele será criado.- Parâmetros:
directory
- o diretório para salvar o Arquivo de Realm. O diretório deve ser gravável.- Lançamentos:
IllegalArgumentException
- sedirectory
for nulo, não gravável ou um arquivo.
-
encryptionKey
RealmConfiguration.Builder encryptionKey(chave byte[])
Define a chave de 64 bytes usada para criptografar e descriptografar o Arquivo de Realm. Define a chave de 64 bytes usada para criptografar e descriptografar o Arquivo de Realm.
-
Versão do esquema
Public RealmConfiguration.Builder schemaVersion(long schemaVersion)
Define a versão do esquema do Realm. Deve ser igual ou superior à versão do esquema do Arquivo de Realm existente, se houver. Se a versão do esquema for superior ao Realm já existente, uma migração será necessária.Se nenhum código de migração for fornecido, o Realm lançará um
RealmMigrationNeededException
.- Veja também:
migration(RealmMigration)
-
migration
migração pública RealmConfiguration.Builder (migração RealmMigration )
Define oRealmMigration
a ser executado se uma migração for necessária. Se essa migração não atualizar o esquema no disco para o esquema de tempo de execução, umRealmMigrationNeededException
será lançado.
-
deleteRealm IfMigrationNeeded
public RealmConfiguration.Builder deleteRealm IfMigrationNeeded ()
Definir isso mudará o comportamento de como as exceções de migração são tratadas. Em vez de lançar umRealmMigrationNeededException
, o Realm no disco será limpo e recriado com o novo esquema do Realm.Isso não pode ser configurado para ter um arquivo de ativo ao mesmo tempo em que chama
assetFile(String)
, pois o arquivo de ativo fornecido será excluído nas migrações.AVISO! Isso resultará em perda de dados.
- Lançamentos:
IllegalStateException
- se configurado para usar um arquivo de ativo ligando paraassetFile(String)
anteriormente.
-
inMemory
public RealmConfiguration.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.
-
módulos
módulos RealmConfiguration.Builder públicos (objeto baseModule, objeto...
Substitui o(s) módulo(s) existente(s) por um ou maisRealmModule
s. 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çãoRealmModule
.- Veja também:
Realm.getDefaultModule()
-
addModule
public final RealmConfiguration.Builder addModule(Object module)
FIXME: Método DEBUG visível temporariamente. Adicionará um módulo condicionalmente. Adiciona um módulo a módulos já definidos.
-
rxFactory
public RealmConfiguration.Builder rxFactory (@Nonnull RxObservableFactory factory)
Define oRxObservableFactory
usado para criar Observables Rx a partir de objetos Realm. O padrão de fábrica éRealmObservableFactory
.- Parâmetros:
factory
- fábrica para usar.
-
flowFactory
Public RealmConfiguration.Builder flowFactory(@Nonnull FlowFactory factory)
Define oFlowFactory
usado para criar Fluxos de corrotina a partir de Objeto de Realm. O padrão de fábrica éRealmFlowFactory
.- Parâmetros:
factory
- fábrica para usar.
-
initialData
Public RealmConfiguration.Builder initialData (Realm.transação transação)
Define os dados iniciais emRealm
. Esta transação será executada somente pela primeira vez quando o reconhecimento de data center for criado ou durante a migração dos dados quandodeleteRealmIfMigrationNeeded()
estiver configurado.- Parâmetros:
transaction
- transação a ser executada.
-
ativoFile
public RealmConfiguration.Builder ativoFile(String ativoFile)
Copia o Arquivo de Realm do caminho de arquivo de ativo fornecido.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 não pode ser combinado com
deleteRealmIfMigrationNeeded()
, pois isso apenas resultaria na exclusão do arquivo copiado.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 estiver configurado para limpar o esquema ligando paradeleteRealmIfMigrationNeeded()
.
-
Somente leitura
public RealmConfiguration.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 umIllegalStateException
.Isso, em particular, média que
Marcar um Realm como somente leitura se aplica apenas ao Realm nesse processo. Outros processos ainda podem escrever no Realm.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 umIllegalStateException
.
-
compactaOnLaunch
public RealmConfiguration.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. ConsulteDefaultCompactOnLaunchCallback
para obter detalhes.
-
compactaOnLaunch
public RealmConfiguration.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.
-
maxNumberOfAtiveVersions
public RealmConfiguration.Builder maxNumberOfAtiveVersions(número longo)
Define o número máximo de versões ativas no Arquivo de Realm antes que umIllegalStateException
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, por exemplo, 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.
- 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
-
allowWritesOnUiThread
public RealmConfiguration.Builder allowWritesOnUiThread(boolean allowWritesOnUiThread)
Define se as chamadas paraRealm.executeTransaction(io.realm.Realm.Transaction)
são permitidas ou não a partir do thread da UI.AVISO: o Realm não permite que transação síncronas sejam executadas na thread principal, a menos que os usuários optem explicitamente por esse método. Recomendamos redirecionar chamadas para
executeTransaction
para threads que não sejam da interface do usuário ou, alternativamente, usarRealm.executeTransactionAsync(io.realm.Realm.Transaction)
.
-
allowQueriesOnUiThread
public RealmConfiguration.Builder allowQueriesOnUiThread(boolean allowQueriesOnUiThread)
Define se umRealmQuery
pode ou não ser iniciado a partir do thread da interface do usuário.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()
ouRealmQuery.findFirstAsync()
.
-
COMPILAR
public RealmConfiguration build()
Cria o RealmConfiguration com base nos parâmetros do construtor.- Retorna:
- o
RealmConfiguration
criado.
-
-