Menu Docs
Página inicial do Docs
/ /
Atlas Device SDKs
/ / /

Classe dynamicRealm

Nesta página

  • io.realm
  • Resumo da classe aninhada
  • Resumo do método
  • Métodos herdados
  • Detalhes do método
  • addChangeListener
  • asFlowable
  • createEmbeddedObject
  • createObject
  • excluir
  • executeTransaction
  • executeTransactionAsync
  • congelar
  • getInstance
  • getInstanceAsync
  • Obter esquema
  • isEmpty
  • Remover todos os ouvintes de alterações
  • removeChangeListener
  • ONDE
java.lang.Object
io.realm.BaseRealm
io.realm.DynamicRealm

dynamicRealm é uma variante dinâmica de io.realm.Realm . Isso significa que todo o acesso a dados e/ou query é feito usando nomes de classe baseados em strings em vez de referências de tipos de classes.

Isso é útil durante migrações ou ao trabalhar com dados baseados em strings, como arquivos CSV ou HTML.

O mesmo io.realm.RealmConfiguration pode ser usado para abrir um Arquivo de Realm no modo dinâmico e digitado, mas modificar o esquema enquanto tem uma versão digitada e dinâmica aberta é altamente desaconselhado e provavelmente travará o Realm digitado. Durante as migrações, apenas um dynamicRealm será aberto.

Os Realms dinâmicos não impõem esquemas ou versões de esquema e o código RealmMigration não é usado, mesmo que tenha sido definido no RealmConfiguration .

Isso significa que o esquema não é criado ou validado até que um Realm seja aberto no modo digitado. If a Realm file is opened in dynamic mode first it will not contain any information about classes and fields, and any queries for classes defined by the schema will fail.

Dica

Veja também:

  • Realm

  • Esquema de Realm

Modificador e tipo
Classe e descrição
public static interface
public abstract static
Modificador e tipo
Método e descrição
public void

Adiciona um ouvinte de alterações ao Realm.

public <any>

Retorna um RxJava Flowable que monitora as alterações nesse Realm.

String className,
DynamicRealmObject parentObject,
String parentProperty
)

Instancia e adiciona um novo objeto incorporado ao Realm.

String className,
Object primaryKeyValue
)

Cria um objeto com uma determinada chave primária.

String className
)

Instancia e adiciona um novo objeto ao Realm.

public void
String className
)

Exclui todos os objetos da classe especificada do Realm.

public void

Executa uma determinada transação no dynamicRealm.

Semelhante a executeTransactionAsync(Transaction) , mas também aceita chamadas de resposta OnSuccess e OnError.

Semelhante a executeTransactionAsync(Transaction) , mas também aceita um retorno de chamada OnError.

Semelhante a executeTransactionAsync(Transaction) , mas também aceita um retorno de chamada de resposta OnSuccess .

Semelhante a executeTransaction(Transaction) , mas é executado de forma assíncrona em um thread de trabalho.

DynamicRealmpúblico

Retorna um snapshot congelado do Realm atual.

público estático DynamicRealm

Construtor estático de Realm que retorna uma variante dinâmica da Instância de Realm definida por io.realm.RealmConfiguration fornecido.

public static RealmAsyncTask

A criação da primeira Instância de Realm por RealmConfiguration em um processo pode levar algum tempo, pois todo o código de inicialização precisa ser executado nesse ponto (configuração do Realm, validação de esquemas e criação de dados iniciais).

Retorna o esquema mutável para esse Realm.

booleanopúblico

Verifica se este io.realm.Realm contém algum objeto.

public void

Remove todos os ouvintes de alterações definidos pelo usuário.

public void

Remove o ouvinte de alterações especificado.

Public RealmQuery
String className
)

Retorna um RealmQuery, que pode ser usado para query a classe fornecida.

  • Métodos herdados da classe java.lang.Object : getClass , hashCode , equals , clone , toString , notify , notifyAll , wait , wait , wait , finalize

  • Métodos herdados da classe io.realm.BaseRealm: setAutoRefresh , isAutoRefresh , refresh , isInTransaction , addListener , removeListener , asFlowable , removeAllListeners , writeCopyTo , writeEncryptedCopyTo , waitForChange , stopWaitForChange , beginTransaction , commitTransaction , cancelTransaction , freeze , isFrozen , getNumberOfActiveVersions , checkIfValid , checkAllowQueriesOnUiThread , checkAllowWritesOnUiThread , checkIfInTransaction , checkIfValidAndInTransaction , getPath , getConfiguration , getVersion , close , isClosed , isEmpty , getSchema , getSubscriptions , deleteAll , migrateRealm , finalize

Adiciona um ouvinte de alterações ao Realm.Os ouvintes serão executados quando as alterações forem confirmadas por este ou outro thread.

Realm instâncias de domínio são armazenadas em cache por thread. Por esse motivo, é importante lembrar de remover os ouvintes novamente usando removeChangeListener(RealmChangeListener) ou removeAllChangeListeners() . Não fazer isso pode causar vazamentos de memória.

Parâmetros

  • listener - o ouvinte de alterações.

Lança

public <any> asFlowable ()

Retorna um RxJava Flowable que monitora as alterações nesse Realm. Ele emitirá o estado atual quando for assinado. Os itens serão emitidos continuamente à medida que o Realm for atualizado - onComplete nunca será chamado.

Os itens emitidos do Realm Flowables estão congelados (consulte Congelar (). Isso significa que eles são imutáveis e podem ser lidos em qualquer thread.

Os Realm Flowables sempre emitem itens do tópico que contém o Realm ativo. Isso significa que, se você precisar fazer processamento adicional, é recomendável observar os valores em um agendador de computação:

realm.asFlowable()
.observeOn(Schedulers.computation())
.map(rxRealm -> doExpensiveWork(rxRealm))
.observeOn(AndroidSchedulers.mainThread())
.subscribe( ... );

Se você quiser que o asFlowable() pare de emitir itens, você pode instruir o RxJava a emitir apenas somente o primeiro item usando o operador first() :

realm.asFlowable().first().subscribe( ... ); // You only get the results once

Devoluções

RxJava Observable que chama apenas onNext . Ele nunca chamará onComplete ou OnError .

Substitui

asFlowable na classe BaseRealm

String className,
DynamicRealmObject parentObject,
String parentProperty
)

Instancia e adiciona um novo objeto incorporado ao Realm.Esse método só deve ser usado para criar objetos de tipos marcados como incorporados.

Parâmetros

  • className - o nome da classe do objeto a ser criado.

  • parentObject - O objeto principal, que deve manter uma referência ao objeto incorporado. Se a propriedade principal for uma lista, o objeto incorporado será adicionado ao final dessa lista.

  • parentProperty - a propriedade na classe principal que contém a referência.

Devoluções

o objeto incorporado recém-criado.

Lança

  • IllegalArgumentException - se clazz não for uma classe incorporada ou se a propriedade na classe principal não puder conter objetos do tipo apropriado.

Dica

Veja também:

String className,
Object primaryKeyValue
)

Cria um objeto com uma determinada chave primária. As classes sem uma chave primária definida devem usar createObject(string) } .

Devoluções

o novo objeto. Todos os campos terão valores padrão para seu tipo, exceto o campo de chave primária que terá o valor fornecido.

Lança

  • RealmException - se o objeto não puder ser criado porque a chave primária é inválida.

  • Exceção de estado ilegal - se o modelo cláusulas não tiver uma chave primária definida.

  • IllegalArgumentException - se o não primaryKeyValue tiver um valor que possa ser convertido para o valor esperado.

Instancia e adiciona um novo objeto ao Realm.

Parâmetros

  • className - o nome da classe do objeto a ser criado.

Devoluções

o novo objeto.

Lança

public void delete (
String className
)

Exclui todos os objetos da classe especificada do Realm.

Parâmetros

  • className - a classe para a qual todos os objetos devem ser removidos.

Lança

  • Exceção de estado ilegal - se o Realm for fechado ou chamado de um thread incorreto.

Executa uma determinada transação no dynamicRealm. getTransaction () e commitTransaction() serão chamados automaticamente. Se alguma exceção for lançada durante a transação, cancelTransaction() será chamado em vez de commitTransaction().

Chamar esse método a partir do thread da interface do usuário lançará uma RealmException . Isso pode resultar em uma queda de armações ou até mesmo de ANRs. Recomendamos chamar esse método de um thread que não seja da interface do usuário ou usar executeTransactionAsync(Transaction) .

Parâmetros

Lança

Semelhante a executeTransactionAsync(Transaction) , mas também aceita chamadas de resposta OnSuccess e OnError.

Parâmetros

  • transaction - transação a ser executada.

  • onSuccess - chamada de resposta invocada quando a transação é bem-sucedida.

  • onError - chamada de resposta invocada em caso de falha da transação.

Devoluções

um RealmAsyncTask representando uma tarefa cancelável.

Lança

Semelhante a executeTransactionAsync(Transaction) , mas também aceita um retorno de chamada OnError.

Parâmetros

  • transaction - transação a ser executada.

  • onError - chamada de resposta invocada em caso de falha da transação.

Devoluções

um RealmAsyncTask representando uma tarefa cancelável.

Lança

Semelhante a executeTransactionAsync(Transaction) , mas também aceita um retorno de chamada de resposta OnSuccess .

Parâmetros

  • transaction - transação a ser executada.

  • onSuccess - chamada de resposta invocada quando a transação é bem-sucedida.

Devoluções

um RealmAsyncTask representando uma tarefa cancelável.

Lança

Semelhante a executeTransaction(Transaction) , mas é executado de forma assíncrona em um thread de trabalho.

Parâmetros

Devoluções

um RealmAsyncTask representando uma tarefa cancelável.

Lança

Retorna um snapshot congelado do Realm atual. Este Realm pode ser lido e consultado de qualquer tópico sem lançar um IllegalStateException . Um Realm congelado tem seu próprio ciclo de vida e pode ser fechado chamando close(), mas fechar totalmente o Realm que gerou a cópia congelada também fechará o Realm congelado.

Os dados congelados podem ser consultados normalmente, mas tentar alterá-los de qualquer forma ou tentar registrar qualquer ouvinte criará uma IllegalStateException .

Observação: manter um grande número de Realms com versões diferentes ativos pode ter um impacto negativo no tamanho do arquivo do Realm. Para evitar tal situação, é possível definir RealmConfiguration.Builder.maxNumberOfAtiveVersions(long) .

Devoluções

uma cópia congelada deste Realm.

Substitui

freeze na classe BaseRealm

public static DynamicRealm getInstance (
RealmConfiguration configuration
)

Construtor estático de Realm que retorna uma variante dinâmica da Instância de Realm definida por io.realm.RealmConfiguration fornecido. Os Realms dinâmicos não se importam com schemaVersion e esquemas, portanto, abrir um dynamicRealm nunca trigger uma migração.

Devoluções

o dynamicRealm definido pela configuração.

Lança

A criação da primeira Instância de Realm por RealmConfiguration em um processo pode levar algum tempo, pois todo o código de inicialização precisa ser executado nesse ponto (configuração do Realm, validação de esquemas e criação de dados iniciais). Esse método coloca o trabalho de inicialização em um thread de background e entrega a Instância de Realm ao thread do chamador de forma assíncrona após a conclusão da inicialização.

Parâmetros

  • configuration - RealmConfiguration usada para abrir o Realm.

  • callback - invocado para retornar os resultados.

Devoluções

um RealmAsyncTask representando uma tarefa cancelável.

Lança

Retorna o esquema mutável para esse Realm.

Devoluções

O RealmSchema para este Realm.

Substitui

getSchema na classe BaseRealm

public boolean isEmpty ()

Verifica se este io.realm.Realm contém algum objeto.

Devoluções

true se vazio, @{code false} caso contrário.

Substitui

isEmpty na classe BaseRealm

Remove todos os ouvintes de alterações definidos pelo usuário.

Lança

Remove o ouvinte de alterações especificado.

Parâmetros

  • listener - o ouvinte de alterações a ser removido.

Lança

public RealmQuery where (
String className
)

Retorna um RealmQuery, que pode ser usado para query a classe fornecida.

Parâmetros

  • className - a classe do objeto que deve ser query.

Devoluções

um RealmQuery, que pode ser usado para fazer query de objetos específicos do tipo fornecido.

Lança

Dica

Veja também:

Voltar

DefaultCompactOnLaunchCallback