Docs Menu
Docs Home
/ /
io.realm

Reino de clase

java.lang.Object
io.realm.BaseRealm
io.realm.Realm

La clase Realm gestiona el almacenamiento y las transacciones de su almacén persistente de objetos. Se encarga de crear instancias de sus objetos Realm. Los objetos dentro de un Realm se pueden consultar y leer en cualquier momento. La creación, modificación y eliminación de objetos debe realizarse dentro de una transacción. Véase executeTransaction(Transaction)

Las transacciones garantizan que múltiples instancias (en múltiples subprocesos) puedan acceder a los mismos objetos en un estado consistente con garantías ACID completas.

Es importante recordar llamar al método close() al terminar con una instancia de Realm. De lo contrario, se puede generar un error java.lang.OutOfMemoryError, ya que no se pueden liberar los recursos nativos.

No se pueden usar instancias Realm en hilos diferentes. Esto quiere decir que debes abrir una instancia en cada hilo donde quieras usar Realm. Las instancias Realm se almacenan automáticamente en caché por hilo utilizando conteo de referencias, así que mientras el conteo de referencias no llegue a cero, llamar a getInstance(RealmConfiguration) sólo devolverá el Realm almacenado en caché y debe considerarse una operación ligera.

Para el hilo de UI, esto significa que la apertura y el cierre de Realms deben ocurrir en onCreate/onDestroy o onStart/onStop.

Las instancias de Realm coordinan su estado entre subprocesos mediante el mecanismo android.os.Handler. Esto también significa que las instancias de Realm en subprocesos sin un android.os.Looper no pueden recibir actualizaciones a menos que se invoque manualmente la función refresh().

A continuación se puede ver un patrón estándar para trabajar con Realm en actividades de Android:

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();
}
}

Realm admite campos de cadena y byte que contengan hasta 16 MB.

Tip

Modificador y Tipo
Clase y descripción

public static interface

public abstract static

Modificador y Tipo
Campo y descripción

Cadenafinal estática pública

público estático final int

LONGITUD DE LA CLAVE DE CIFRADO

La longitud requerida para las claves de cifrado utilizadas para cifrar los datos de Realm.

Modificador y Tipo
Método y descripción

vacío público

Agrega un detector de cambios al Reino.

público <any>

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

booleano estático público

Compacta un archivo Realm.

público E

E realmObject,
int maxDepth
)

Realiza una copia en memoria no administrada de un RealmObject ya persistido.

público E

E realmObject
)

Realiza una copia en memoria no administrada de un RealmObject ya persistido.

java.lang.Iterable<E> realmObjects,
int maxDepth
)

Realiza una copia en memoria no administrada de objetos RealmObject ya persistentes.

Realiza una copia en memoria no administrada de objetos RealmObject ya persistentes.

Copia una colección de RealmObjects en la instancia Realm y devuelve su copia.

público E

E object,
)

Copia un RealmObject a la instancia Realm y devuelve la copia.

Actualiza una lista de RealmObjects existentes que se identifica por su io.realm.annotations.PrimaryKey o crea una nueva copia si no se pudo encontrar ningún objeto existente.

público E

Actualiza un RealmObject existente identificado por la misma io.realm.annotations.PrimaryKey o crea una nueva copia si no se pudo encontrar ningún objeto existente.

vacío público

JSONArray json
)

Crea un objeto Realm para cada objeto en una matriz JSON.

público E

RealmModel parentObject,
String parentProperty
)

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

público E

Object primaryKeyValue
)

Crea una instancia y agrega un nuevo objeto al Reino con el valor de clave principal ya establecido.

público E

Crea una instancia y agrega un nuevo objeto al Reino.

público E

JSONObject json
)

Crea un objeto Realm previamente rellenado con datos de un objeto JSON.

vacío público

Intenta actualizar una lista de objetos existentes identificados por su clave principal con nuevos datos JSON.

público E

Intenta actualizar un objeto existente definido por su clave principal con nuevos datos JSON.

vacío público

Elimina todos los objetos de la clase especificada del Reino.

booleano estático público

Elimina el archivo Realm junto con los archivos temporales relacionados especificados por la RealmConfiguration dada del sistema de archivos.

vacío público

Ejecuta una transacción determinada en el Reino.

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.

public Realm

Devuelve una instantánea congelada del Reino actual.

Contexto estático público

Obtenga el contexto de la aplicación utilizado al inicializar Realm con Realm.init(Context) o Realm.init(Context, String).

Devuelve la configuración predeterminada para getDefaultInstance().

Constructor estático de Realm que devuelve la instancia de Realm definida por io.realm.RealmConfiguration establecido por setDefaultConfiguration(RealmConfiguration)

Devuelve el módulo Realm predeterminado.

int estático público

Devuelve el número actual de instancias Realm abiertas en todos los hilos en el proceso actual que usan esta configuración.

Constructor estático de Realm que devuelve 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).

int estático público

Devuelve el número actual de instancias de Realm abiertas en el hilo que llama a este método.

Devuelve el esquema para este reino.

vacío público estático sincronizado

Context context,
String userAgent
)

Inicializa la librería de Realm y crea una configuración por defecto que está lista para usar.

vacío público estático sincronizado

Context context
)

Inicializa la librería de Realm y crea una configuración por defecto que está lista para usar.

vacío público

Inserta un RealmObject no administrado.

vacío público

Inserta una lista de RealmObjects no administrados.

vacío público

Inserta o actualiza un RealmObject no administrado.

vacío público

Inserta o actualiza una lista de RealmObjects no administrados.

booleanopúblico

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

vacío estático público

Activa manualmente una migración en un RealmMigration.

vacío estático público

Activa manualmente la migración asociada con una RealmConfiguration determinada.

vacío público

Elimina todos los escuchas de cambios definidos por el usuario.

vacío público

Elimina el detector de cambios especificado.

vacío estático público

Elimina la configuración predeterminada actual (si existe).

vacío estático público

Devuelve un RealmQuery tipado, que puede usarse para buscar objetos específicos de este tipo

  • 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

La longitud requerida para las claves de cifrado utilizadas para cifrar los datos de Realm.

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

Las instancias de Realm son singletons por subproceso y se almacenan en caché, por lo que los oyentes deben eliminarse manualmente incluso al llamar a close(). De lo contrario, existe el riesgo de 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

public static boolean compactRealm (
RealmConfiguration configuration
)

Compacta un archivo Realm. Un archivo Realm suele contener espacio libre. Este método elimina este espacio libre y, por lo tanto, reduce el tamaño del archivo. Los objetos dentro de los archivos Realm permanecen intactos. El archivo debe cerrarse antes de llamar a este método; de lo contrario, se devolverá false.

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

Devuelve

true si tiene éxito, false si alguna operación de archivo falló.

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

Realiza una copia en memoria no administrada de un RealmObject ya persistente. Esta copia profunda copia todos los objetos referenciados hasta la profundidad definida.

Los objetos copiados se desvincularán de Realm y ya no se actualizarán automáticamente. Esto significa que podrían contener datos que ya no son coherentes con otros objetos administrados de Realm.

*ADVERTENCIA*: Cualquier cambio en los objetos copiados puede fusionarse en Realm mediante copyToRealmOrUpdate(RealmModel, ImportFlag...), pero se sobrescribirán todos los campos, no solo los modificados. Esto incluye las referencias a otros objetos, incluso si son null debido a que maxDepth se alcanza. Esto también puede sobrescribir los cambios realizados por otros subprocesos. Este comportamiento se puede modificar mediante ImportFlag.

Parámetros de tipo

  • E - tipo de objeto.

Parámetros

  • realmObject -RealmObject a copiar.

  • maxDepth Límite de la copia profunda. Todas las referencias posteriores a esta profundidad serán null . La profundidad inicial es 0 .

Devuelve

una copia separada en memoria del RealmObject administrado.

Lanzamientos

public E copyFromRealm <E >(
E realmObject
)

Realiza una copia en memoria no administrada de un objeto RealmObject ya persistente. Esta copia profunda copia todos los objetos referenciados.

Los objetos copiados se desvincularán de Realm y ya no se actualizarán automáticamente. Esto significa que podrían contener datos que ya no son coherentes con otros objetos administrados de Realm.

*ADVERTENCIA*: Cualquier cambio en los objetos copiados puede fusionarse en Realm mediante copyToRealmOrUpdate(RealmModel, ImportFlag...), pero se sobrescribirán todos los campos, no solo los modificados. Esto incluye las referencias a otros objetos y puede sobrescribir los cambios realizados por otros subprocesos. Este comportamiento puede modificarse mediante ImportFlag.

Parámetros de tipo

  • E - tipo de objeto.

Parámetros

Devuelve

una copia separada en memoria del RealmObject administrado.

Lanzamientos

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

Realiza una copia en memoria no administrada de objetos Realm ya persistentes. Esta copia profunda copia todos los objetos referenciados hasta la profundidad definida. Los objetos copiados se desvinculan de Realm y ya no se actualizan automáticamente. Esto significa que podrían contener datos que ya no son coherentes con otros objetos Realm administrados.

*ADVERTENCIA*: Cualquier cambio en los objetos copiados puede fusionarse en Realm mediante copyToRealmOrUpdate(Iterable, ImportFlag...), pero se sobrescribirán todos los campos, no solo los modificados. Esto incluye las referencias a otros objetos, incluso si son null debido a que maxDepth se alcanza. Esto también puede sobrescribir los cambios realizados por otros hilos. Este comportamiento se puede modificar mediante ImportFlag.

Parámetros de tipo

  • E - tipo de objeto.

Parámetros

  • realmObjects -RealmObjects para copiar.

  • maxDepth Límite de la copia profunda. Todas las referencias posteriores a esta profundidad serán null . La profundidad inicial es 0 .

Devuelve

una copia separada en memoria de los RealmObjects.

Lanzamientos

public List copyFromRealm <E >(
)

Realiza una copia en memoria no administrada de objetos Realm ya persistentes. Esta copia profunda copia todos los objetos referenciados. Los objetos copiados se desvinculan de Realm y ya no se actualizan automáticamente. Esto significa que podrían contener datos que ya no son coherentes con otros objetos Realm administrados.

*ADVERTENCIA*: Cualquier cambio en los objetos copiados puede fusionarse en Realm mediante copyToRealmOrUpdate(RealmModel, ImportFlag...), pero se sobrescribirán todos los campos, no solo los modificados. Esto incluye las referencias a otros objetos y puede sobrescribir los cambios realizados por otros subprocesos. Este comportamiento puede modificarse mediante ImportFlag.

Parámetros de tipo

  • E - tipo de objeto.

Parámetros

  • realmObjects -RealmObjects para copiar.

Devuelve

una copia separada en memoria de los RealmObjects administrados.

Lanzamientos

Copia una colección de RealmObjects a la instancia de Realm y devuelve su copia. Cualquier cambio posterior a los RealmObjects originales no se reflejará en las copias de Realm. Se trata de una copia profunda, es decir, se copian todos los objetos referenciados. Los objetos que ya estén en este Realm se ignorarán. Tenga en cuenta que al copiar un objeto se copian todos los valores de los campos. Cualquier campo sin definir en los objetos y objetos secundarios se establecerá en su valor predeterminado si no se proporciona.

Parámetros

  • objects - los RealmObjects que se copiarán al Realm.

  • flags - cualquier bandera que modifique el comportamiento de inserción de los datos en Realm.

Devuelve

una lista de los RealmObjects convertidos cuyas propiedades son administradas por el Realm.

Lanzamientos

public E copyToRealm <E >(
E object,
)

Copia un objeto RealmObject en la instancia de Realm y devuelve la copia. Cualquier cambio posterior al objeto RealmObject original no se reflejará en la copia de Realm. Al ser una copia profunda, se copiarán todos los objetos referenciados. Los objetos que ya estén en este Realm serán ignorados. Tenga en cuenta que al copiar un objeto, se copiarán todos los valores de los campos. Cualquier campo sin definir en este objeto y en los objetos secundarios se establecerá en su valor predeterminado si no se proporciona.

Parámetros

  • object - el io.realm.RealmObject para copiar al Reino.

  • flags - cualquier bandera que modifique el comportamiento de inserción de los datos en Realm.

Devuelve

un RealmObject gestionado, con sus propiedades respaldadas por el Realm.

Lanzamientos

Actualiza una lista de objetos RealmObject existentes, identificados por su io.realm.annotations.PrimaryKey, o crea una nueva copia si no se encuentra ningún objeto existente. Se trata de una copia o actualización profunda, es decir, se copian o actualizan todos los objetos referenciados.

Tenga en cuenta que al copiar un objeto se copiarán todos los valores de los campos. Cualquier campo no definido en los objetos y objetos secundarios se establecerá con su valor predeterminado si no se proporciona.

Parámetros

  • objects - una lista de objetos para actualizar o copiar en Realm.

  • flags - cualquier bandera que modifique el comportamiento de inserción de los datos en Realm.

Devuelve

una lista de todos los RealmObjects nuevos o actualizados.

Lanzamientos

public E copyToRealmOrUpdate <E >(
E object,
)

Actualiza un objeto RealmObject existente identificado por la misma clave primaria io.realm.annotations.PrimaryKey o crea una nueva copia si no se encuentra ningún objeto existente. Se trata de una copia o actualización profunda, es decir, se copian o actualizan todos los objetos referenciados.

Tenga en cuenta que copiar un objeto copiará todos los valores de los campos. Cualquier campo no establecido en el objeto y los objetos secundarios se establecerán en su valor por defecto si no se proporciona.

Parámetros

  • object - io.realm.RealmObject para copiar o actualizar.

  • flags - cualquier bandera que modifique el comportamiento de inserción de los datos en Realm.

Devuelve

el RealmObject nuevo o actualizado con todas sus propiedades respaldadas por el Realm.

Lanzamientos

public void createAllFromJson <E >(
JSONArray json
)

Crea un objeto Realm para cada objeto de una matriz JSON. Esto debe realizarse dentro de una transacción. Las propiedades JSON con propiedades desconocidas se ignorarán. Si un campo RealmObject no está presente en el objeto JSON, este se establecerá con el valor predeterminado para ese tipo.

Este método actualmente no admite el campo de lista de valores.

Parámetros

  • clazz - tipo de objetos de Reino a crear.

  • json - una matriz donde cada JSONObject debe asignarse a la clase especificada.

Lanzamientos

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

  • clazz - La clase del objeto a crear. Debe estar marcada con @RealmClass(embedded = true) .

  • parentObject - El objeto padre que debe contener una referencia al objeto incrustado.

  • parentProperty - la propiedad en la clase principal que contiene la referencia. Si la propiedad principal es una lista, el objeto incrustado se añadirá al final de esa lista.

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.

public E createObject <E >(
Object primaryKeyValue
)

Crea una instancia y añade un nuevo objeto al dominio con el valor de la clave principal ya establecido. Si el valor infringe la restricción de la clave principal, no se añadirá ningún objeto y se lanzará una excepción RealmException. Se ignorará el valor predeterminado de la clave principal proporcionado por la clase del modelo.

Parámetros

  • clazz - la clase del objeto a crear.

  • primaryKeyValue - valor para el campo de clave principal.

Devuelve

el nuevo objeto.

Lanzamientos

public E createObject <E >(
)

Crea una instancia y añade un nuevo objeto al dominio. Este método solo está disponible para clases de modelo sin la anotación @PrimaryKey. Si desea crear un objeto con clave principal, utilice createObject(Class, Object) o copyToRealm(RealmModel, ImportFlag...).

Parámetros

  • clazz - la clase del objeto a crear.

Devuelve

el nuevo objeto.

Lanzamientos

  • RealmException: si la clave principal está definida en la clase del modelo o no se puede crear un objeto.

public E createObjectFromJson <E >(
JSONObject json
)

Crea un objeto Realm precargado con datos de un objeto JSON. Esto debe realizarse dentro de una transacción. Las propiedades JSON con propiedades desconocidas se ignorarán. Si un campo RealmObject no está presente en el objeto JSON, este se establecerá con el valor predeterminado para ese tipo.

Este método actualmente no admite el campo de lista de valores.

Parámetros

  • clazz - tipo de objeto Realm a crear.

  • json - el JSONObject con datos del objeto.

Devuelve

objeto creado o null si no se proporcionaron datos JSON.

Lanzamientos

Tip

public void createOrUpdateAllFromJson <E >(
JSONArray json
)

Intenta actualizar una lista de objetos existentes identificados por su clave principal con nuevos datos JSON. Si no se encuentra un objeto existente en el dominio, se creará uno nuevo. Esto debe ocurrir dentro de una transacción. Si al actualizar un objeto RealmObject no se encuentra un campo en el objeto JSON, dicho campo no se actualizará. Si se crea un nuevo objeto RealmObject y no se encuentra un campo en el objeto JSON, a ese campo se le asignará el valor predeterminado para el tipo de campo.

Este método actualmente no admite el campo de lista de valores.

Parámetros

  • clazz Tipo de io.realm.RealmObject que se creará o actualizará. Debe tener una clave principal definida.

  • json - matriz con datos de objetos.

Lanzamientos

Tip

JSONObject json
)

Intenta actualizar un objeto existente definido por su clave principal con nuevos datos JSON. Si no se encuentra ningún objeto existente, se guardará uno nuevo en el Realm. Esto debe ocurrir dentro de una transacción. Si al actualizar un RealmObject no se encuentra un campo en el objeto JSON, dicho campo no se actualizará. Si se crea un nuevo RealmObject y no se encuentra un campo en el objeto JSON, a ese campo se le asignará el valor predeterminado para el tipo de campo.

Este método actualmente no admite el campo de lista de valores.

Parámetros

  • clazz Tipo de io.realm.RealmObject que se creará o actualizará. Debe tener una clave principal definida.

  • json - org.json.JSONObject con datos del objeto.

Devuelve

creó o actualizó io.realm.RealmObject.

Lanzamientos

Tip

Elimina todos los objetos de la clase especificada del Reino.

Parámetros

  • clazz - la clase para la cual se deben eliminar objetos.

Lanzamientos

public static boolean deleteRealm (
RealmConfiguration configuration
)

Elimina del sistema de archivos el archivo Realm junto con los archivos temporales relacionados especificados por la configuración de RealmConfiguration. Los archivos temporales con la extensión ".lock" no se eliminarán.

Todas las instancias de Realm deben cerrarse antes de llamar a este método.

ADVERTENCIA: En el caso de Realm sincronizado, es posible que una instancia interna de Realm en el hilo en segundo plano no se cierre, incluso si todas las instancias de Realm controladas por el usuario están cerradas. Esto generará un error. Consulte el IllegalStateException problema https://github.com/realm/realm-java/issues/.5416

Parámetros

Devuelve

false Si no se pudo eliminar el archivo Realm, la eliminación incorrecta de archivos temporales no afectará el valor de retorno. Se registrarán todas las eliminaciones incorrectas.

Lanzamientos

public void executeTransaction (
Realm.Transaction transaction
)

Ejecuta una transacción en el dominio. Lasoperaciones beginTransaction() 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 - io.realm.Realm.Transaction 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

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

public Realm freeze ()

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

Obtenga el contexto de la aplicación utilizado al inicializar Realm con Realm.init(Context) o Realm.init(Context, String).

Devuelve

el contexto de la aplicación utilizado al inicializar Realm con Realm.init(Context) o Realm.init(Context, String), o nulo si Realm aún no se ha inicializado.

Devuelve la configuración predeterminada para getDefaultInstance().

Devuelve

objeto de configuración predeterminado o null si no se especifica ninguna configuración predeterminada.

public static Realm getDefaultInstance ()

Constructor estático de Realm que devuelve la instancia de Realm definida por io.realm.RealmConfiguration establecido por setDefaultConfiguration(RealmConfiguration)

Devuelve

una instancia de la clase Realm.

Lanzamientos

public static Object getDefaultModule ()

Devuelve el módulo Realm predeterminado. Este módulo contiene todas las clases Realm del proyecto actual, pero no las de las dependencias de la biblioteca o del proyecto. Las clases Realm que lo componen deben exponerse mediante su propio módulo.

Devuelve

el módulo Realm predeterminado o null si no existe ningún módulo predeterminado.

Lanzamientos

public static int getGlobalInstanceCount (
RealmConfiguration configuration
)

Devuelve el número actual de instancias de Realm abiertas en todos los subprocesos del proceso actual que utilizan esta configuración. Esto incluye tanto Realms dinámicos como normales.

Parámetros

Devuelve

número de instancias Realm abiertas en todos los hilos.

public static Realm getInstance (
RealmConfiguration configuration
)

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

Parámetros

Devuelve

una instancia de la clase Realm

Lanzamientos

RealmConfiguration configuration,
)

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

public static int getLocalInstanceCount (
RealmConfiguration configuration
)

Devuelve el número actual de instancias de Realm abiertas en el hilo que llama a este método. Esto incluye tanto Realms dinámicos como normales.

Parámetros

Devuelve

Número de instancias de Realm abiertas en el hilo de llamada.

Devuelve el esquema de este dominio. El esquema es inmutable. Cualquier intento de modificarlo generará una excepción UnsupportedOperationException.

El esquema solo se puede modificar mediante DynamicRealm.getSchema() o mediante una migración.

Devuelve

El esquema de reino para este reino.

Anulaciones

getSchema en la clase BaseRealm

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

Inicializa la biblioteca Realm y crea una configuración predeterminada lista para usar. Es necesario llamar a este método antes de interactuar con cualquier otra API de Realm. Un buen lugar para ello es una subclase android.app.Application:

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

Recuerde registrarlo en el archivo 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 - el contexto de la aplicación.

  • userAgent - string opcional definida por el usuario que se enviará al objeto Realm servidor como parte de un cabecera User-Agent cuando se establezca una sesión. Esta configuración no será utilizada por Reinos no sincronizados.

Lanzamientos

public static synchronized void init (
Context context
)

Inicializa la biblioteca Realm y crea una configuración predeterminada lista para usar. Es necesario llamar a este método antes de interactuar con cualquier otra API de Realm. Un buen lugar para ello es una subclase android.app.Application:

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

Recuerde registrarlo en el archivo 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 - el contexto de la aplicación.

Lanzamientos

public void insert (
RealmModel object
)

Inserta un RealmObject no gestionado. Esto suele ser más rápido que copyToRealm(RealmModel, ImportFlag...) ya que no devuelve los elementos insertados y realiza asignaciones y comprobaciones mínimas. Una vez insertado, cualquier cambio realizado en el objeto original no se persistirá.

Tenga en cuenta:

  • No comprobamos si los objetos proporcionados ya están administrados, por lo que insertar un objeto administrado podría duplicarlo. La duplicación solo ocurrirá si el objeto no tiene una clave principal. Los objetos con claves principales nunca se duplicarán.

  • No creamos (ni devolvemos) un RealmObject gestionado para cada elemento

  • Al copiar un objeto, se copiarán todos los valores de los campos. Cualquier campo no definido en el objeto y en los objetos secundarios se establecerá en su valor predeterminado si no se proporciona.

Si desea que se devuelva el RealmObject administrado, use copyToRealm(RealmModel, ImportFlag...); de lo contrario, si tiene una gran cantidad de objetos, este método generalmente es más rápido.

Parámetros

  • object -RealmObjects para insertar.

Lanzamientos

Inserta una lista de objetos RealmObject no administrados. Generalmente, esto es más rápido que copyToRealm(Iterable, ImportFlag...), ya que no devuelve los elementos insertados y realiza asignaciones y comprobaciones mínimas. Tras la inserción, los cambios en los objetos originales no se conservarán.

Tenga en cuenta:

  • No comprobamos si los objetos proporcionados ya están administrados, por lo que insertar un objeto administrado podría duplicarlo. La duplicación solo ocurrirá si el objeto no tiene una clave principal. Los objetos con claves principales nunca se duplicarán.

  • No creamos (ni devolvemos) un RealmObject gestionado para cada elemento

  • Al copiar un objeto, se copiarán todos los valores de los campos. Cualquier campo no definido en el objeto y en los objetos secundarios se establecerá en su valor predeterminado si no se proporciona.

Si desea que se devuelva el RealmObject administrado, use copyToRealm(Iterable, ImportFlag...); de lo contrario, si tiene una gran cantidad de objetos, este método generalmente es más rápido.

Parámetros

  • objects -RealmObjects para insertar.

Lanzamientos

  • IllegalStateException: si el reino correspondiente está cerrado, se llama desde un hilo incorrecto o no está en una transacción.

public void insertOrUpdate (
RealmModel object
)

Inserta o actualiza un objeto RealmObject no administrado. Esto suele ser más rápido que copyToRealmOrUpdate(RealmModel, ImportFlag...), ya que no devuelve los elementos insertados y realiza asignaciones y comprobaciones mínimas. Tras la inserción, los cambios en el objeto original no se conservarán.

Tenga en cuenta:

  • No comprobamos si los objetos proporcionados ya están administrados, por lo que insertar un objeto administrado podría duplicarlo. La duplicación solo ocurrirá si el objeto no tiene una clave principal. Los objetos con claves principales nunca se duplicarán.

  • No creamos (ni devolvemos) un RealmObject gestionado para cada elemento

  • Al copiar un objeto, se copiarán todos los valores de los campos. Cualquier campo no definido en el objeto y en los objetos secundarios se establecerá en su valor predeterminado si no se proporciona.

Si desea que se devuelva el RealmObject administrado, use copyToRealm(RealmModel, ImportFlag...); de lo contrario, si tiene una gran cantidad de objetos, este método generalmente es más rápido.

Parámetros

  • object -RealmObjects para insertar.

Lanzamientos

  • IllegalStateException: si el reino correspondiente está cerrado, se llama desde un hilo incorrecto o no está en una transacción.

Inserta o actualiza una lista de objetos RealmObject no administrados. Esto suele ser más rápido que copyToRealmOrUpdate(Iterable, ImportFlag...), ya que no devuelve los elementos insertados y realiza asignaciones y comprobaciones mínimas. Tras la inserción, los cambios en los objetos originales no se conservarán.

Tenga en cuenta:

  • No comprobamos si los objetos proporcionados ya están administrados, por lo que insertar un objeto administrado podría duplicarlo. La duplicación solo ocurrirá si el objeto no tiene una clave principal. Los objetos con claves principales nunca se duplicarán.

  • No creamos (ni devolvemos) un RealmObject gestionado para cada elemento

  • Al copiar un objeto, se copiarán todos los valores de los campos. Cualquier campo no definido en el objeto y en los objetos secundarios se establecerá en su valor predeterminado si no se proporciona.

Si desea que se devuelva el RealmObject administrado, use copyToRealm(Iterable, ImportFlag...); de lo contrario, si tiene una gran cantidad de objetos, este método generalmente es más rápido.

Parámetros

  • objects -RealmObjects para insertar.

Lanzamientos

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

public static void migrateRealm (
RealmConfiguration configuration,
RealmMigration migration
)

Activa manualmente una migración en un RealmMigration.

Parámetros

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

  • migration RealmMigration se ejecutará en el dominio. Esto anulará cualquier migración establecida en la configuración.

Lanzamientos

public static void migrateRealm (
RealmConfiguration configuration
)

Activa manualmente la migración asociada a una configuración de RealmConfiguration determinada. Si Realm ya tiene la última versión, no ocurrirá nada.

Parámetros

Lanzamientos

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

Remueve la configuración por defecto actual (si hay alguna). Cualquier llamada posterior a getDefaultInstance() fallará hasta que se haya establecido una nueva configuración predeterminada usando setDefaultConfiguration(RealmConfiguration) .

public static void setDefaultConfiguration (
RealmConfiguration configuration
)

Establece la io.realm.RealmConfiguration utilizada al llamar a getDefaultInstance().

Parámetros

Lanzamientos

Devuelve un RealmQuery tipado, que puede usarse para buscar objetos específicos de este tipo

Parámetros

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

Devuelve

una RealmQuery tipificada, que se puede utilizar para consultar objetos específicos de este tipo.

Volver

Estado del proxy