Pregunta

la forma en que estoy usando db4o es en realidad sólo lectura. Voy a empaquetar una base de datos con la aplicación y hacer algo de fondo actualización a la misma vez en la que puedo manejar de manera diferente. Pero para mis actividades que están mostrando los datos de la db, no necesito hacer cualquier actualización, así que por esta razón por la que al igual que para obtener los datos fuera de la base de datos y que los datos sean tienen "desactivado" por lo que cuando la actividad tiene un configurationChange debido a la orientación de la pantalla cambia o algo así, puede layout rápidamente la actividad de nuevo. ¿Cuál es la forma correcta para desactivar objetos por lo que todavía son utilizables a mi actividad. Actualmente tengo algo así como el código

List<MyObject> mList = db().queryByExample(persistentClass);  // db just gets my ObjectContainer

He intentado hacer algo como esto

db().ext().deactivate(mList);

pero no ha work.Do parecía que necesito para iterar a través de cada elemento de la lista para desactivarlo?

cuando se cambia la orientación de la pantalla en el androide, que llega a mi método close actividad en la que cierro la base de datos. pero entonces se inicia una copia de seguridad y que no quieren llenar el mlist nuevo.

Así que sigo recibiendo una excepción "com.db4o.ext.DatabaseClosedException" porque en mi diseño de la actividad que hago cosas como

mList.size()

Realmente sólo quiero para desactivar los objetos b / c que nunca tenga que actualizarlos, ¿cómo puedo hacer esto?

¿Fue útil?

Solución

Bueno en primer lugar, usted quiere asegurarse de que todos los objetos se cargan. db4o sólo devuelve una lista de carga lenta, que las cargas objeto cuando se accede a ellos. Es necesario copiar los objetos a una lista ordinaria que no requiere una base de datos en funcionamiento. Esto es muy sencillo, basta con pasar el resultado de la consulta a una nueva lista de arreglo:

 List<MyObject> mList = new ArrayList<MyObject>(db().queryByExample(persistentClass)); 

Ahora usted no debe conseguir un DatabaseClosedException.

A continuación, sólo quiero añadir que la 'desactivación' de db4o es algo completamente diferente. Tiene que ver con el activación -Mecanismo. La desactivación es lo contrario de la activación. cargas de activación de objeto a partir de la base de datos en la memoria. La desactivación hace que el objeto en la memoria a un casco vacío sin datos en ella. desactivación explícita sólo es útil para situaciones especiales a la memoria de seguridad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top