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

Classe Realm

Nesta página

  • io.realm
  • Resumo da classe aninhada
  • Resumo do campo
  • Resumo do método
  • Métodos herdados
  • Detalhes do campo
  • DEFAULT_REALM_NAME
  • ENCRYPTION_KEY_LENGTH
  • Detalhes do método
  • addChangeListener
  • asFlowable
  • compactaRealm
  • copyFromRealm
  • copyToRealm
  • copyToRealmOrUpdate
  • createAllFromJson
  • createEmbeddedObject
  • createObject
  • createObjectFromJson
  • createOrUpdateAllFromJson
  • createOrUpdateObjectFromJson
  • excluir
  • deleteRealm
  • executeTransaction
  • executeTransactionAsync
  • congelar
  • getApplicationContext
  • getDefaultConfiguration
  • Obter instância padrão
  • getDefaultModule
  • getGlobalInstanceCount
  • getInstance
  • getInstanceAsync
  • getLocalInstanceCount
  • Obter esquema
  • init
  • insert
  • insiraOrUpdate
  • isEmpty
  • migrationRealm
  • Remover todos os ouvintes de alterações
  • removeChangeListener
  • removeDefaultConfiguration
  • setDefaultConfiguration
  • ONDE
java.lang.Object
io.realm.BaseRealm
io.realm.Realm

A classe Realm é o gerente de armazenamento e transação do seu armazenamento persistente de objetos. Ele é responsável por criar instâncias de seus RealmObjects. Objetos dentro de um Realm podem ser consultados e lidos a qualquer momento. A criação, modificação e exclusão de objetos deve ser feita enquanto estiver dentro de uma transação. Consulte executeTransaction(Transaction)

As transação garantem que várias instâncias (em vários threads) possam acessar o mesmo objeto em um estado consistente com garantias ACID totais.

É importante lembrar de chamar o método close () quando terminar com uma instância do Realm. Não fazer isso pode levar a java.lang.OutOfMemoryError pois os recursos nativos não podem ser liberados.

As instâncias de Realm não podem ser usadas em threads diferentes. Isso significa que você precisa abrir uma instância em cada thread que deseja usar Realm. As instâncias de Realm são armazenadas em cache automaticamente por thread usando a contagem de referências; portanto, desde que a contagem de referências não chegue a zero, chamar getInstance(RealmConfiguration) apenas retornará o Realm em cache e deve ser considerado uma operação leve.

Para o thread da UI, isso significa que a abertura e o fechamento de Realms devem ocorrer em onCreate/onDestroy ou onStart/onStop.

As instâncias de Realm coordenam seu estado entre threads usando o android.os.Handler mecanismo. Isso também significa que o Realm instâncias em threads sem um android.os.Looper não pode receber atualizações a menos que refresh() seja chamado manualmente.

Um padrão padrão para trabalhar com o Realm nas atividades do Android pode ser visto abaixo:

public class RealmApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
// The Realm file will be located in package's "files" directory.
RealmConfiguration realmConfig = new RealmConfiguration.Builder(this).build();
Realm.setDefaultConfiguration(realmConfig);
}
}
public class RealmActivity extends Activity {
private Realm realm;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_main);
realm = Realm.getDefaultInstance();
}
@Override
protected void onDestroy() {
super.onDestroy();
realm.close();
}
}

O Realm suporta campos de string e bytes contendo até 16 MB.

Dica

Veja também:

  • ACID

  • Exemplos usando o Realm

Modificador e tipo
Classe e descrição
public static interface
public abstract static
Modificador e tipo
campo e descrição
public static final String
public static final int

ENCRYPTION_KEY_LENGTH

O comprimento necessário para chaves de criptografia usadas para criptografar dados do Realm.

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.

public static boolean

Compacta um Arquivo de Realm.

público E
E realmObject,
int maxDepth
)

Faz uma cópia na memória não gerenciada de um RealmObject já persistente.

público E
E realmObject
)

Faz uma cópia na memória não gerenciada de um RealmObject já persistente.

lista pública
java.lang.Iterable<E> realmObjects,
int maxDepth
)

Faz uma cópia na memória não gerenciada de RealmObjects já persistentes.

lista pública

Faz uma cópia na memória não gerenciada de RealmObjects já persistentes.

lista pública

Copia uma collection de RealmObjects para a Instância de Realm e retorna sua cópia.

público E
E object,
)

Copia um RealmObject para a Instância de Realm e retorna a cópia.

lista pública

Atualiza uma lista de RealmObjects existentes que é identificado por seu io.realm.annotations.PrimaryKey ou cria uma nova cópia se nenhum objeto existente puder ser encontrado.

público E

Atualiza um RealmObject existente que é identificado pelo mesmo io.realm.annotations.PrimaryKey ou cria uma nova cópia se nenhum objeto existente puder ser encontrado.

public void
JSONArray json
)

Cria um Objeto de Realm para cada objeto em uma array JSON.

público E
RealmModel parentObject,
String parentProperty
)

Instancia e adiciona um novo objeto incorporado ao Realm.

público E
Object primaryKeyValue
)

Instancia e adiciona um novo objeto ao Realm com o valor da chave primária já definido.

público E

Instancia e adiciona um novo objeto ao Realm.

público E
JSONObject json
)

Cria um Objeto de Realm pré-preenchido com dados de um objeto JSON.

public void

Tenta atualizar uma lista de objetos existentes identificados por sua chave primária com novos dados JSON.

público E

Tenta atualizar um objeto existente definido por sua chave primária com novos dados JSON.

public void

Exclui todos os objetos da classe especificada do Realm.

public static boolean

Exclui o Arquivo de Realm junto com os arquivos temporários relacionados especificados pela RealmConfiguration fornecida do sistema de arquivos.

public void

Executa uma determinada transação no Realm.

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.

Retorna um snapshot congelado do Realm atual.

public static Context

Obtenha o contexto do aplicativo usado ao inicializar o Realm com Realm.init(Context) ou Realm.init(Context, string) .

public static RealmConfiguration

Retorna a configuração padrão para getDefaultInstance() .

public static Realm

Realm estático de domínio que retorna a Realm instância de domínio definida pelo io.realm.RealmConfiguration por setDefaultConfiguration(RealmConfiguration)

Retorna o módulo Realm padrão.

public static int

Retorna o número atual de Instância de Realm abertas em todos os threads no processo atual que estão usando esta configuração.

public static Realm

Construtor estático de Realm que retorna a Instância de Realm definida por io.realm.RealmConfigurationfornecido

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 (configurar o Realm, validar esquemas e criar dados iniciais).

public static int

Retorna o número atual de Instância de Realm abertas no thread que chama esse método.

Retorna o esquema para este Realm.

public static synchronized void
Context context,
String userAgent
)

Inicializa a biblioteca do Realm e cria uma configuração padrão que está pronta para ser usada.

public static synchronized void
Context context
)

Inicializa a biblioteca do Realm e cria uma configuração padrão que está pronta para ser usada.

public void

Insere um RealmObject não gerenciado.

public void

Insere uma lista de RealmObjects não gerenciados.

public void

Insere ou atualiza um RealmObject não gerenciado.

public void

Insere ou atualiza uma lista de RealmObjects não gerenciados.

booleanopúblico

Verifica se este io. Realm. O Realm contém quaisquer objetos.

public static void

Atlas Triggers manualmente uma migração em um RealmMigration.

public static void

Atlas Triggers manualmente a migração associada a uma determinada RealmConfiguration.

public void

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

public void

Remove o ouvinte de alterações especificado.

public static void

Remove a configuração padrão atual (se houver).

public static void
Public RealmQuery

Retorna um RealmQuery digitado, que pode ser usado para query objeto específicos desse tipo

  • 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

O comprimento necessário para chaves de criptografia usadas para criptografar dados do Realm.

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

Instância de Realm são por thread singletons e armazenadas em cache, portanto, os ouvintes devem ser removidos manualmente, mesmo que chamem close(). Caso contrário, existe o risco de 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

public static boolean compactRealm (
RealmConfiguration configuration
)

Compacta um arquivo Realm. Um arquivo Realm geralmente contém espaço livre/não utilizado. Esse método remove esse espaço livre e o tamanho do arquivo é reduzido. Objeto dentro do Arquivo de Realm permanecem intocados. O arquivo deve ser fechado antes que esse método seja chamado, caso contrário, false será retornado.

The file system should have free space for at least a copy of the Realm file.
The Realm file is left untouched if any file operation fails.

Parâmetros

Devoluções

true se bem-sucedido, false se qualquer operação de arquivo falhar.

public E copyFromRealm <E >(
E realmObject,
int maxDepth
)

Faz uma cópia na memória não gerenciada de um RealmObject já persistente. Esta é uma cópia em profundidade que copiará todos os objetos referenciados até a profundidade definida.

O(s) objeto(s) copiado(s) será(ão) separado(s) do Realm e não será mais atualizado automaticamente. Isso significa que os objeto copiados podem conter dados que não são mais consistentes com outros Objeto de Realm managed.

*AVISO*: quaisquer alterações em objetos copiados podem ser mescladas novamente no Realm usando copyToRealmOrUpdate(RealmModel, ImportFlag...) , mas todos os campos serão substituídos, não apenas aqueles que foram alterados. Isso inclui referências a outros objetos, mesmo que eles possam estar null devido a maxDepth ter sido atingido. Isso também pode substituir potencialmente as alterações feitas por outras threads. Esse comportamento pode ser modificado usando ImportFlag s.

Parâmetros de tipo

  • E - tipo de objeto.

Parâmetros

  • realmObject - RealmObject para copiar.

  • maxDepth - limite da cópia profunda. Todas as referências após esta profundidade serão null . A profundidade inicial é 0 .

Devoluções

uma cópia desanexada na memória do RealmObject managed.

Lança

public E copyFromRealm <E >(
E realmObject
)

Faz uma cópia na memória não gerenciada de um RealmObject já persistente. Esta é uma cópia profunda que copiará todos os objetos referenciados.

O(s) objeto(s) copiado(s) será(ão) separado(s) do Realm e não será mais atualizado automaticamente. Isso significa que os objeto copiados podem conter dados que não são mais consistentes com outros Objeto de Realm managed.

*AVISO*: quaisquer alterações em objetos copiados podem ser mescladas novamente no Realm usando copyToRealmOrUpdate(RealmModel, ImportFlag...) , mas todos os campos serão substituídos, não apenas aqueles que foram alterados. Isso inclui referências a outros objetos e pode potencialmente substituir alterações feitas por outros threads. Esse comportamento pode ser modificado usando ImportFlag s.

Parâmetros de tipo

  • E - tipo de objeto.

Parâmetros

Devoluções

uma cópia desanexada na memória do RealmObject managed.

Lança

public List copyFromRealm <E >(
java.lang.Iterable<E> realmObjects,
int maxDepth
)

Faz uma cópia na memória não gerenciada de RealmObjects já persistentes. Esta é uma cópia em profundidade que copiará todos os objetos referenciados até a profundidade definida.Os objetos copiados são todos separados do Realm e não serão mais atualizados automaticamente. Isso significa que os objeto copiados podem conter dados que não são mais consistentes com outros Objeto de Realm managed.

*AVISO*: quaisquer alterações em objetos copiados podem ser mescladas novamente no Realm usando copyToRealmOrUpdate(Iterable, ImportFlag...) , mas todos os campos serão substituídos, não apenas aqueles que foram alterados. Isso inclui referências a outros objetos, mesmo que eles possam estar null devido a maxDepth ter sido atingido. Isso também pode substituir potencialmente as alterações feitas por outras threads. Esse comportamento pode ser modificado usando ImportFlag s.

Parâmetros de tipo

  • E - tipo de objeto.

Parâmetros

  • realmObjects - RealmObjects para copiar.

  • maxDepth - limite da cópia profunda. Todas as referências após esta profundidade serão null . A profundidade inicial é 0 .

Devoluções

uma cópia desanexada na memória dos RealmObjects.

Lança

public List copyFromRealm <E >(
)

Faz uma cópia na memória não gerenciada de RealmObjects já persistentes. Esta é uma cópia profunda que copiará todos os objetos referenciados.Os objetos copiados são todos desanexados do Realm e não serão mais atualizados automaticamente. Isso significa que os objetos copiados podem conter dados que não são mais consistentes com outros objetos de Realm gerenciados.

*AVISO*: quaisquer alterações em objetos copiados podem ser mescladas novamente no Realm usando copyToRealmOrUpdate(RealmModel, ImportFlag...) , mas todos os campos serão substituídos, não apenas aqueles que foram alterados. Isso inclui referências a outros objetos e pode potencialmente substituir alterações feitas por outros threads. Esse comportamento pode ser modificado usando ImportFlag s.

Parâmetros de tipo

  • E - tipo de objeto.

Parâmetros

  • realmObjects - RealmObjects para copiar.

Devoluções

uma cópia desanexada na memória de RealmObjects managed.

Lança

Copia uma collection de RealmObjects para a Instância de Realm e retorna sua cópia. Quaisquer alterações adicionais nos RealmObjects originais não serão refletidas nas cópias do Realm. Esta é uma cópia profunda, ou seja, todos os objetos referenciados serão copiados. Objetos que já estão neste Realm serão ignorados.Observação: copiar um objeto copiará todos os valores de campo. Qualquer campo não definido nos objetos e objetos filho será definido com seu valor padrão se não for fornecido.

Parâmetros

  • objects - os RealmObjects a serem copiados para o Realm.

  • flags - qualquer sinalizador que modifique o comportamento de inserir os dados no Realm.

Devoluções

uma lista dos RealmObjects convertidos que têm suas propriedade managed pelo Realm.

Lança

public E copyToRealm <E >(
E object,
)

Copia um RealmObject para a instância do Realm e retorna a cópia. Quaisquer alterações adicionais no RealmObject original não serão refletidas na cópia do Realm. Esta é uma cópia profunda, então todos os objetos referenciados serão copiados. Objetos que já estão neste Realm serão ignorados.Observação: copiar um objeto copiará todos os valores de campo. Qualquer campo não definido neste e nos objetos filho será definido para seu valor padrão se não for fornecido.

Parâmetros

  • object - o io.realm.RealmObject a ser copiado para o Realm.

  • flags - qualquer sinalizador que modifique o comportamento de inserir os dados no Realm.

Devoluções

um RealmObject gerenciado com suas propriedades apoiadas pelo Realm.

Lança

Atualiza uma lista de RealmObjects existentes que é identificado por seu io.realm.annotations.PrimaryKey ou cria uma nova cópia se nenhum objeto existente puder ser encontrado. Esta é uma cópia ou atualização profunda, ou seja, todos os objetos referenciados serão copiados ou atualizados.

Observe que copiar um objeto copiará todos os valores de campo. Any unset field in the objects and child objects will be set to their default value if not provided.

Parâmetros

  • objects - uma lista de objetos para atualizar ou copiar para Realm.

  • flags - qualquer sinalizador que modifique o comportamento de inserir os dados no Realm.

Devoluções

uma lista de todos os RealmObjects novos ou atualizados.

Lança

public E copyToRealmOrUpdate <E >(
E object,
)

Atualiza um RealmObject existente que é identificado pelo mesmo io.realm.annotations.PrimaryKey ou cria uma nova cópia se nenhum objeto existente puder ser encontrado. Esta é uma cópia ou atualização profunda, ou seja, todos os objetos referenciados serão copiados ou atualizados.

Observe que copiar um objeto copiará todos os valores de campo. Qualquer campo não definido no objeto e nos objetos filho será definido com seu valor padrão se não for fornecido.

Parâmetros

  • object - io.realm.RealmObject para copiar ou atualizar.

  • flags - qualquer sinalizador que modifique o comportamento de inserir os dados no Realm.

Devoluções

o RealmObject novo ou atualizado com todas as suas propriedades apoiadas pelo Realm.

Lança

public void createAllFromJson <E >(
JSONArray json
)

Cria um Objeto de Realm para cada objeto em uma array JSON. Isso deve ser feito em uma transação.As propriedades do JSON com propriedades desconhecidas serão ignoradas. Se um campo RealmObject não estiver presente no objeto JSON, o campo RealmObject será definido com o valor padrão para esse tipo.

Atualmente, este método não suporta o campo de lista de valores.

Parâmetros

  • clazz - tipo de Objeto de Realm a serem criados.

  • json - uma array onde cada JSONObject deve mapear para a classe especificada.

Lança

public E createEmbeddedObject <E >(
RealmModel 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

  • clazz - a classe do objeto a ser criado. Deve ser marcado com @RealmClass(embedded = true) .

  • parentObject - O objeto principal, que deve manter uma referência ao objeto incorporado.

  • parentProperty - a propriedade na classe principal que contém a referência. Se a propriedade principal for uma lista, o objeto incorporado será adicionado ao final dessa lista.

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:

public E createObject <E >(
Object primaryKeyValue
)

Instancia e adiciona um novo objeto ao Realm com o valor da chave primária já definido.Se o valor violar a restrição da chave primária, nenhum objeto será adicionado e uma RealmException será lançada. O valor padrão para a chave primária fornecido pela classe do modelo será ignorado.

Parâmetros

  • clazz - a classe do objeto a ser criado.

  • primaryKeyValue - valor para o campo de chave primária.

Devoluções

o novo objeto.

Lança

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

  • Exceção de estado ilegal - se a classe de modelo 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.

public E createObject <E >(
)

Instancia e adiciona um novo objeto ao Realm método só está disponível para classes de modelo sem anotação @PrimaryKey. Se você quiser criar um objeto que tenha uma chave primária, use createObject(Class, Object) ou copyToRealm(RealmModel, ImportFlag...) .

Parâmetros

  • clazz - a classe do objeto a ser criado.

Devoluções

o novo objeto.

Lança

  • RealmException - se a chave primária for definida na classe do modelo ou se um objeto não puder ser criado.

Dica

Veja também:

public E createObjectFromJson <E >(
JSONObject json
)

Cria um Objeto de Realm pré-preenchido com dados de um objeto JSON. Isso deve ser feito dentro de uma transação. Propriedades JSON com propriedades desconhecidas serão ignoradas. Se um campo RealmObject não estiver presente no objeto JSON, o campo RealmObject será definido com o valor padrão para esse tipo.

Atualmente, este método não suporta o campo de lista de valores.

Parâmetros

  • clazz - tipo de objeto de Realm a ser criado.

  • json - o JSONObject com dados de objeto.

Devoluções

objeto criado ou null se nenhum dado JSON foi fornecido.

Lança

Dica

Veja também:

public void createOrUpdateAllFromJson <E >(
JSONArray json
)

Tenta atualizar uma lista de objetos existentes identificados por sua chave primária com novos dados JSON. Se um objeto existente não puder ser encontrado no Realm, um novo objeto será criado. Isso deve acontecer dentro de uma transação. Se a atualização de um RealmObject e um campo não for encontrado no objeto JSON, esse campo não será atualizado. Se um novo RealmObject for criado e um campo não for encontrado no objeto JSON, esse campo receberá o valor padrão para o tipo de campo.

Atualmente, este método não suporta o campo de lista de valores.

Parâmetros

  • clazz - tipo de io.realm.RealmObject para criar ou atualizar. Deve ter uma chave primária definida.

  • json - array com dados de objeto.

Lança

Dica

Veja também:

JSONObject json
)

Tenta atualizar um objeto existente definido por sua chave primária com novos dados JSON. Se nenhum objeto existente puder ser encontrado, um novo objeto será salvo no Realm. Isso deve acontecer dentro de uma transação. Se a atualização de um RealmObject e um campo não for encontrado no objeto JSON, esse campo não será atualizado. Se um novo RealmObject for criado e um campo não for encontrado no objeto JSON, esse campo receberá o valor padrão para o tipo de campo.

Atualmente, este método não suporta o campo de lista de valores.

Parâmetros

  • clazz - Tipo de io.realm.RealmObject a ser criado ou atualizado. Deve ter uma chave primária definida.

  • json - org.json.JSONObject com dados de objeto.

Devoluções

criado ou atualizado io.realm.RealmObject .

Lança

Dica

Veja também:

Exclui todos os objetos da classe especificada do Realm.

Parâmetros

  • clazz - a classe quais objetos devem ser removidos.

Lança

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

public static boolean deleteRealm (
RealmConfiguration configuration
)

Exclui o Arquivo de Realm junto com os arquivos temporários relacionados especificados pela RealmConfiguration fornecida do sistema de arquivos. Arquivo temporário com "bloqueio" extensão não será excluída.

Todas as Instância de Realm devem ser fechadas antes de chamar este método.

AVISO: para o Realm sincronizado, há uma chance de que uma instância interna do Realm no thread de background não seja fechada, mesmo que todas as instâncias do Realm controladas pelo usuário estejam fechadas. Isso resultará em IllegalStateException . Consulte o problema https://github.com/realm/realm-java/issues/5416 .

Parâmetros

Devoluções

false se o Arquivo de Realm não puder ser excluído. A falha na exclusão de arquivos temporários não terá impacto no valor de devolução. Todas as exclusões de arquivos com falha serão registradas.

Lança

  • Exceção de estado ilegal - se houver instâncias do Realm abertas em outras threads ou outros processos.

public void executeTransaction (
Realm.Transaction transaction
)

Executa uma determinada transação no Realm. 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 - io.realm.Realm.Transaction para executar.

  • 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

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 - io.realm.Realm.Transaction para executar.

  • 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

public Realm freeze ()

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 Context getApplicationContext ()

Obtenha o contexto do aplicativo usado ao inicializar o Realm com Realm.init(Context) ou Realm.init(Context, string) .

Devoluções

o contexto do aplicação utilizado ao inicializar o Realm com Realm.init(Context) ou Realm.init(Context, string) , ou null se o Realm ainda não tiver sido inicializado.

Retorna a configuração padrão para getDefaultInstance() .

Devoluções

objeto de configuração padrão ou null se nenhuma configuração padrão for especificada.

public static Realm getDefaultInstance ()

Realm estático de domínio que retorna a Realm instância de domínio definida pelo io.realm.RealmConfiguration por setDefaultConfiguration(RealmConfiguration)

Devoluções

uma instância da classe Realm.

Lança

public static Object getDefaultModule ()

Retorna o módulo Realm padrão. Este módulo contém todas as classes de Realm no projeto atual, mas não aquelas da biblioteca ou das dependências do projeto. Classes de domínio nestes devem ser expostas usando seu próprio módulo.

Devoluções

o módulo Realm padrão ou null se não existir nenhum módulo padrão.

Lança

  • RealmException - se não for possível criar uma instância do módulo.

public static int getGlobalInstanceCount (
RealmConfiguration configuration
)

Retorna o número atual de Instância de Realm abertas em todos os threads no processo atual que estão usando esta configuração. Isso inclui Realms dinâmicos e normais.

Parâmetros

Devoluções

número de instâncias de Realm abertas em todos os threads.

public static Realm getInstance (
RealmConfiguration configuration
)

Construtor estático de Realm que retorna a Instância de Realm definida por io.realm.RealmConfigurationfornecido

Parâmetros

Devoluções

uma instância da classe Realm

Lança

RealmConfiguration configuration,
)

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 (configurar o Realm, validar esquemas e criar 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

public static int getLocalInstanceCount (
RealmConfiguration configuration
)

Retorna o número atual de Instância de Realm abertas no thread que chama esse método. Isso inclui Realms dinâmicos e normais.

Parâmetros

Devoluções

número de Instância de Realm abertas na thread do chamador.

Retorna o esquema deste Realm. O esquema é imutável. Qualquer tentativa de modificá-lo resultará em uma UnsupportedOperationException .

O esquema só pode ser modificado usando dynamicRealm.getSchema() ou por meio de uma migração.

Devoluções

O RealmSchema para este Realm.

Substitui

getSchema na classe BaseRealm

public static synchronized void init (
Context context,
String userAgent
)

Inicializa a biblioteca Realm e cria uma configuração padrão que está pronta para usar. É necessário chamar esse método antes de interagir com qualquer outra API do Realm. Um bom lugar é em um android.app.Application subclasse:

public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Realm.init(this, "MyApp/" + BuildConfig.VERSION_NAME);
}
}

Lembre-se de registrá-lo no arquivo AndroidManifest.xml :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="io.realm.example">
<application android:name=".MyApplication">
// ...
</application>
</manifest>

Parâmetros

  • context - o Contexto do aplicativo.

  • userAgent - string opcional definida pelo usuário que será enviada ao Servidor de objetos de Realm como parte de um cabeçalho User-Agent quando uma sessão for estabelecida. Esta configuração não será usada por Realms não sincronizados.

Lança

Dica

Veja também:

public static synchronized void init (
Context context
)

Inicializa a biblioteca Realm e cria uma configuração padrão que está pronta para usar. É necessário chamar esse método antes de interagir com qualquer outra API do Realm. Um bom lugar é em um android.app.Application subclasse:

public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Realm.init(this);
}
}

Lembre-se de registrá-lo no arquivo AndroidManifest.xml :

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="io.realm.example">
<application android:name=".MyApplication">
// ...
</application>
</manifest>

Parâmetros

  • context - o Contexto do aplicativo.

Lança

Dica

Veja também:

public void insert (
RealmModel object
)

Insere um RealmObject não gerenciado. Isso geralmente é mais rápido do que copyToRealm(RealmModel, ImportFlag...) , pois não retorna os elementos inseridos e executa alocações e verificações mínimas. Depois de inserido, quaisquer alterações no objeto original não persistirão.

Observação:

  • Não verificamos se os objeto fornecidos já são managed ou não, portanto, a inserção de um objeto managed pode duplicá-lo. A duplicação só ocorrerá se o objeto não tiver uma chave primária. objeto com chave primária nunca serão duplicados.

  • Não criamos (nem retornamos) um RealmObject managed para cada elemento

  • Copiar um objeto copiará todos os valores de campo. Qualquer campo não definido no objeto e os objetos filho serão definidos para seu valor padrão se não forem fornecidos

Se quiser que o RealmObject gerenciado seja retornado, use copyToRealm(RealmModel, ImportFlag...) , caso contrário, se você tiver um grande número de objeto , esse método geralmente é mais rápido.

Parâmetros

  • object - RealmObjects para inserir.

Lança

  • Exceção de estado ilegal - se o Realm correspondente estiver fechado, chamado de uma thread incorreta ou não em uma transação.

  • io.realm.Exceptions.RealmPrimaryKeyConstraintException - se dois objetos com a mesma chave primária forem inseridos ou se um valor de chave primária já existir no Realm.

Insere uma lista de RealmObjects não gerenciados. Isso geralmente é mais rápido do que copyToRealm(Iterable, ImportFlag...) , pois não retorna os elementos inseridos e executa alocações e verificações mínimas. Depois de inserido, quaisquer alterações nos objetos originais não persistirão.

Observação:

  • Não verificamos se os objeto fornecidos já são managed ou não, portanto, a inserção de um objeto managed pode duplicá-lo. A duplicação só ocorrerá se o objeto não tiver uma chave primária. objeto com chave primária nunca serão duplicados.

  • Não criamos (nem retornamos) um RealmObject managed para cada elemento

  • Copiar um objeto copiará todos os valores de campo. Qualquer campo não definido no objeto e os objetos filho serão definidos para seu valor padrão se não forem fornecidos

Se quiser que o RealmObject gerenciado seja retornado, use copyToRealm(Iterable, ImportFlag...) , caso contrário, se você tiver um grande número de objeto , esse método geralmente é mais rápido.

Parâmetros

  • objects - RealmObjects para inserir.

Lança

  • Exceção de estado ilegal - se o Realm correspondente estiver fechado, chamado de uma thread incorreta ou não em uma transação.

public void insertOrUpdate (
RealmModel object
)

Insere ou atualiza um RealmObject não gerenciado. Isso geralmente é mais rápido do que copyToRealmOrUpdate(RealmModel, ImportFlag...) , pois não retorna os elementos inseridos e executa alocações e verificações mínimas. Depois de inserido, quaisquer alterações no objeto original não persistirão.

Observação:

  • Não verificamos se os objeto fornecidos já são managed ou não, portanto, a inserção de um objeto managed pode duplicá-lo. A duplicação só ocorrerá se o objeto não tiver uma chave primária. objeto com chave primária nunca serão duplicados.

  • Não criamos (nem retornamos) um RealmObject managed para cada elemento

  • Copiar um objeto copiará todos os valores de campo. Qualquer campo não definido no objeto e os objetos filho serão definidos para seu valor padrão se não forem fornecidos

Se quiser que o RealmObject gerenciado seja retornado, use copyToRealm(RealmModel, ImportFlag...) , caso contrário, se você tiver um grande número de objeto , esse método geralmente é mais rápido.

Parâmetros

  • object - RealmObjects para inserir.

Lança

  • Exceção de estado ilegal - se o Realm correspondente estiver fechado, chamado de uma thread incorreta ou não em uma transação.

Insere ou atualiza uma lista de RealmObjects não gerenciados. Isso geralmente é mais rápido do que copyToRealmOrUpdate(Iterable, ImportFlag...) , pois não retorna os elementos inseridos e executa alocações e verificações mínimas. Depois de inserido, quaisquer alterações nos objetos originais não persistirão.

Observação:

  • Não verificamos se os objeto fornecidos já são managed ou não, portanto, a inserção de um objeto managed pode duplicá-lo. A duplicação só ocorrerá se o objeto não tiver uma chave primária. objeto com chave primária nunca serão duplicados.

  • Não criamos (nem retornamos) um RealmObject managed para cada elemento

  • Copiar um objeto copiará todos os valores de campo. Qualquer campo não definido no objeto e os objetos filho serão definidos para seu valor padrão se não forem fornecidos

Se quiser que o RealmObject gerenciado seja retornado, use copyToRealm(Iterable, ImportFlag...) , caso contrário, se você tiver um grande número de objeto , esse método geralmente é mais rápido.

Parâmetros

  • objects - RealmObjects para inserir.

Lança

  • Exceção de estado ilegal - se o Realm correspondente estiver fechado, chamado de uma thread incorreta ou não em uma transação.

  • io.realm.Exceptions.RealmPrimaryKeyConstraintException - se dois objetos com a mesma chave primária forem inseridos ou se um valor de chave primária já existir no Realm.

public boolean isEmpty ()

Verifica se este io. Realm. O Realm contém quaisquer objetos.

Devoluções

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

Substitui

isEmpty na classe BaseRealm

public static void migrateRealm (
RealmConfiguration configuration,
RealmMigration migration
)

Atlas Triggers manualmente uma migração em um RealmMigration.

Parâmetros

  • configuration - the:ref:RealmConfiguration <io_realm_RealmConfiguration> .

  • migration - a RealmMigration a ser executada no Realm. Isso substituirá qualquer migração definida na configuração.

Lança

public static void migrateRealm (
RealmConfiguration configuration
)

Aciona manualmente a migração associada a uma determinada RealmConfiguration. Se o Realm já estiver na versão mais recente, nada acontecerá.

Parâmetros

Lança

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 static void removeDefaultConfiguration ()

Remove a configuração padrão atual (se houver). Quaisquer chamadas adicionais para getDefaultInstance() falharão até que uma nova configuração padrão tenha sido definida usando setDefaultConfiguration(RealmConfiguration) .
public static void setDefaultConfiguration (
RealmConfiguration configuration
)

Define o io. Realm.RealmConfiguration usado ao chamar getDefaultInstance() .

Parâmetros

Lança

Retorna um RealmQuery digitado, que pode ser usado para query objeto específicos desse tipo

Parâmetros

  • clazz - a classe do objeto que deve ser query para.

Devoluções

um RealmQuery digitado, que pode ser usado para query objeto específicos desse tipo.

Dica

Veja também:

Voltar

Estado do proxy