Docs Menu
Docs Home
/ /
io.realm

Clase DynamicRealm

java.lang.Object
io.realm.BaseRealm
io.realm.DynamicRealm

DynamicRealm es una variante dinámica de io.realm.Realm. Esto significa que todo acceso a datos y/o consultas se realiza mediante nombres de clase basados ​​en cadenas, en lugar de referencias a tipos de clase.

Esto es útil durante las migraciones o cuando se trabaja con datos basados ​​en cadenas, como archivos CSV o XML.

La misma io.realm.RealmConfiguration puede usarse para abrir un archivo Realm tanto en modo dinámico como tipificado, pero modificar el esquema mientras hay una versión tipificada y dinámica abierta no es recomendado y muy probablemente provocará un fallo en el Realm tipificado. Durante las migraciones, solo un DynamicRealm estará abierto.

Los reinos dinámicos no aplican esquemas ni versiones de esquemas y el código RealmMigration no se utiliza incluso si se ha definido en RealmConfiguration.

Esto significa que el esquema no se crea ni se valida hasta que se abre un dominio en modo tipificado. Si un archivo de dominio se abre primero en modo dinámico, no contendrá información sobre clases y campos, y cualquier consulta a las clases definidas por el esquema fallará.

Tip

  • Realm

  • RealmSchema

Modificador y Tipo
Clase y descripción

public static interface

public abstract static

Modificador y Tipo
Método y descripción

public void

Agrega un detector de cambios al Reino.

público <any>

Devuelve un RxJava Flowable que monitorea los cambios en este Reino.

objeto público de DynamicRealmObject

String className,
DynamicRealmObject parentObject,
String parentProperty
)

Crea una instancia y agrega un nuevo objeto incrustado al Reino.

objeto público de DynamicRealmObject

String className,
Object primaryKeyValue
)

Crea un objeto con una clave principal determinada.

objeto público de DynamicRealmObject

String className
)

Crea una instancia y agrega un nuevo objeto al Reino.

public void

String className
)

Elimina todos los objetos de la clase especificada del Reino.

public void

Ejecuta una transacción determinada en el DynamicRealm.

Tarea asincrónica dedominio público

Similar a executeTransactionAsync(Transaction), pero también acepta devoluciones de llamadas OnSuccess y OnError.

Tarea asincrónica dedominio público

Similar a executeTransactionAsync(Transaction), pero también acepta una devolución de llamada OnError.

Tarea asincrónica dedominio público

Similar a executeTransactionAsync(Transaction), pero también acepta una devolución de llamada OnSuccess.

Tarea asincrónica dedominio público

Similar a executeTransaction(Transaction) pero se ejecuta de forma asincrónica en un hilo de trabajo.

Devuelve una instantánea congelada del Reino actual.

Constructor estático de Realm que devuelve una variante dinámica de la instancia de Realm definida por io.realm.RealmConfiguration proporcionado.

La creación de la primera instancia de Realm por RealmConfiguration en un proceso puede llevar algún tiempo, ya que todo el código de inicialización debe ejecutarse en ese punto (configurar el Realm, validar esquemas y crear datos iniciales).

Devuelve el esquema mutable para este reino.

booleanopúblico

Comprueba si este io.realm.Realm contiene algún objeto.

public void

Elimina todos los escuchas de cambios definidos por el usuario.

public void

Elimina el detector de cambios especificado.

String className
)

Devuelve un RealmQuery, que se puede utilizar para consultar la clase proporcionada.

  • Métodos heredados de la clase getClasshashCodeequalsclonetoStringnotifynotifyAllwaitwaitwaitjava.lang.Object:,,,,,,,,,, finalize

  • Methods inherited from class 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

Agrega un detector de cambios al Reino. Los detectores se ejecutarán cuando este u otro hilo confirmen los cambios.

Las instancias de Realm se almacenan en caché por subproceso. Por eso, es importante recordar eliminar los escuchas de nuevo mediante removeChangeListener(RealmChangeListener) o removeAllChangeListeners(). No hacerlo puede causar fugas de memoria.

Parámetros

  • listener - el oyente de cambios.

Lanzamientos

public <any> asFlowable ()

Devuelve un Flowable de RxJava que monitoriza los cambios en este dominio. Emitirá el estado actual al suscribirse. Los elementos se emitirán continuamente a medida que se actualice el dominio; nunca se llamará a onComplete.

Los elementos emitidos por Realm Flowables están congelados (consulta freeze()). Esto significa que son inmutables y pueden ser leídos en cualquier subproceso.

Los flowables de Realm siempre emiten elementos desde el hilo que contiene el Realm activo. Esto significa que, si necesita realizar más procesamiento, se recomienda observar los valores en un programador de cómputo:

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

Si desea que asFlowable() deje de emitir elementos, puede indicarle a RxJava que solo emita el primer elemento utilizando el operador first():

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

Devuelve

Observable de RxJava que solo llama a onNext . Nunca llamará a onComplete ni a OnError .

Anulaciones

asFlowable en la clase BaseRealm

String className,
DynamicRealmObject parentObject,
String parentProperty
)

Crea una instancia y agrega un nuevo objeto incrustado al Reino. Este método solo debe usarse para crear objetos de tipos marcados como incrustados.

Parámetros

  • className - el nombre de la clase del objeto a crear.

  • parentObject - El objeto principal que debe tener una referencia al objeto incrustado. Si la propiedad principal es una lista, el objeto incrustado se añadirá al final de esa lista.

  • parentProperty - la propiedad en la clase padre que contiene la referencia.

Devuelve

el objeto incrustado recién creado.

Lanzamientos

  • IllegalArgumentException: si clazz no es una clase incorporada o si la propiedad en la clase principal no puede contener objetos del tipo apropiado.

String className,
Object primaryKeyValue
)

Crea un objeto con una clave principal dada. Las clases sin una clave principal definida deben usar createObject(String) } en su lugar.

Devuelve

El nuevo objeto. Todos los campos tendrán valores predeterminados para su tipo, excepto el campo de clave principal, que tendrá el valor proporcionado.

Lanzamientos

Crea una instancia y agrega un nuevo objeto al Reino.

Parámetros

  • className - el nombre de la clase del objeto a crear.

Devuelve

el nuevo objeto.

Lanzamientos

public void delete (
String className
)

Elimina todos los objetos de la clase especificada del Reino.

Parámetros

  • className - la clase para la cual se deben eliminar todos los objetos.

Lanzamientos

Ejecuta una transacción en DynamicRealm. Las operacionesbeginTransaction() y commitTransaction() se invocan automáticamente. Si se lanza una excepción durante la transacción, se invocará cancelTransaction() en lugar de commitTransaction().

Llamar a este método desde el hilo de la interfaz de usuario generará una RealmException. Esto podría provocar la pérdida de fotogramas o incluso ANR. Recomendamos llamar a este método desde un hilo que no sea de la interfaz de usuario o usar executeTransactionAsync(Transaction).

Parámetros

Lanzamientos

Similar a executeTransactionAsync(Transaction), pero también acepta devoluciones de llamadas OnSuccess y OnError.

Parámetros

  • transaction - Transacción a ejecutar.

  • onSuccess - devolución de llamada invocada cuando la transacción tiene éxito.

  • onError - devolución de llamada invocada cuando falla la transacción.

Devuelve

una RealmAsyncTask que representa una tarea cancelable.

Lanzamientos

Similar a executeTransactionAsync(Transaction), pero también acepta una devolución de llamada OnError.

Parámetros

  • transaction - Transacción a ejecutar.

  • onError - devolución de llamada invocada cuando falla la transacción.

Devuelve

una RealmAsyncTask que representa una tarea cancelable.

Lanzamientos

Similar a executeTransactionAsync(Transaction), pero también acepta una devolución de llamada OnSuccess.

Parámetros

  • transaction - Transacción a ejecutar.

  • onSuccess - devolución de llamada invocada cuando la transacción tiene éxito.

Devuelve

una RealmAsyncTask que representa una tarea cancelable.

Lanzamientos

Similar a executeTransaction(Transaction) pero se ejecuta de forma asincrónica en un hilo de trabajo.

Parámetros

Devuelve

una RealmAsyncTask que representa una tarea cancelable.

Lanzamientos

Devuelve una instantánea congelada del dominio actual. Este dominio se puede leer y consultar desde cualquier hilo sin generar una excepción IllegalStateException. Un dominio congelado tiene su propio ciclo de vida y se puede cerrar mediante la función close(); sin embargo, cerrar completamente el dominio que generó la copia congelada también lo cerrará.

Los datos congelados se pueden consultar de forma normal, pero intentar mutarlos de cualquier forma o intentar registrar cualquier oyente arrojará una IllegalStateException.

Nota: Mantener un gran número de Realms con diferentes versiones vivos puede tener un impacto negativo en el tamaño del archivo del Realm. Para evitar una situación así, es posible establecer RealmConfiguration.Builder.maxNumberOfActiveVersions(long) .

Devuelve

una copia congelada de este Reino.

Anulaciones

freeze en la clase BaseRealm

public static DynamicRealm getInstance (
RealmConfiguration configuration
)

Constructor estático de Realm que devuelve una variante dinámica de la instancia de Realm definida por io.realm.RealmConfiguration. Los Realms dinámicos no tienen en cuenta la versión del esquema ni los esquemas, por lo que abrir un Realm dinámico nunca activará una migración.

Devuelve

el DynamicRealm definido por la configuración.

Lanzamientos

La creación de la primera instancia de Realm por cada RealmConfiguration en un proceso puede tardar un tiempo, ya que todo el código de inicialización debe ejecutarse en ese momento (configuración de Realm, validación de esquemas y creación de datos iniciales). Este método coloca el trabajo de inicialización en un subproceso en segundo plano y entrega la instancia de Realm al subproceso de llamada de forma asíncrona una vez finalizada la inicialización.

Parámetros

  • configuration - RealmConfiguration se utiliza para abrir el Reino.

  • callback - se invoca para devolver los resultados.

Devuelve

una RealmAsyncTask que representa una tarea cancelable.

Lanzamientos

Devuelve el esquema mutable para este reino.

Devuelve

El esquema de reino para este reino.

Anulaciones

getSchema en la clase BaseRealm

public boolean isEmpty ()

Comprueba si este io.realm.Realm contiene algún objeto.

Devuelve

true si está vacío, @{code false} en caso contrario.

Anulaciones

isEmpty en la clase BaseRealm

Elimina todos los escuchas de cambios definidos por el usuario.

Lanzamientos

Elimina el detector de cambios especificado.

Parámetros

  • listener - el detector de cambios que se eliminará.

Lanzamientos

public RealmQuery where (
String className
)

Devuelve un RealmQuery, que se puede utilizar para consultar la clase proporcionada.

Parámetros

  • className - la clase del objeto que se va a consultar.

Devuelve

una RealmQuery, que se puede utilizar para consultar objetos específicos del tipo proporcionado.

Lanzamientos

Volver

Devolución de llamada predeterminada CompactOnLaunch

En esta página