sugar studio programacion para móviles libro example edición desarrollo curso aplicaciones android web-services sqlite mobile

studio - programacion android pdf 2018



¿Por qué usar la base de datos sqlite en Android? (5)

¿Por qué usamos la base de datos sqlite en android? Estoy desarrollando una aplicación de Android donde los datos se deben obtener del servidor y hacer algunos cálculos de datos y mostrarlos en la interfaz de usuario.

¿Es bueno para mí buscar los datos en la base de datos sqlite y actualizar la interfaz de usuario en intervalos regulares desde la sqlite en 20 minutos o será bueno enviar la solicitud HTTP al servidor y actualizar los datos de la respuesta en el servidor? UI.

Quería saber cuál sería mejor y por qué? ¿Por qué involucrar a sqlite DB? Los datos corresponden a algunos datos de la tabla 40X40 en los que se debe realizar un procesamiento matemático pesado y luego se muestran en la interfaz de usuario (similar a la aplicación del mercado de valores) y los datos deben borrarse cada 12 horas. por favor consejos Rgds, Raúl


12 horas es mucho tiempo, por lo que en lugar de dejar su vagar de datos en la RAM, le sugiero que use la base de datos. Porque nunca sabes cuándo necesitarás leerlo nuevamente.

De lo contrario, si su propósito es solo descargar datos, procesarlos y mostrarlos en actividad, entonces no necesita involucrar a la base de datos porque si su aplicación está cerrada (debido a usuarios o poca memoria), de todos modos su aplicación estará descargando datos nuevos de servidor ... ¿estoy en lo cierto?


Es bueno usar la base de datos en su caso.

Pros:

  • Si su aplicación se cierra, los datos en la memoria se perderán, pero después de eso podrá restaurar el estado de la base de datos si tiene uno.
  • Especialmente en el caso de cálculos complejos, es bueno almacenar el resultado una vez en la base de datos y no volver a calcularlo varias veces a pedido.
  • La base de datos desatará su interfaz de usuario de la conexión a Internet y, por lo tanto, podrá mostrar los resultados incluso si no hay conexión a Internet.
  • Al utilizar la base de datos, podrá obtener los datos actualizados de un servicio en segundo plano, sin afectar su UI
  • Organizar sus datos en la base de datos generalmente hace que sea mucho más fácil administrar todos los datos de la aplicación.

Contras:

  • Agregar una base de datos requerirá un poco de esfuerzo adicional de su lado

Como puede ver, mi lista demuestra que DEBERÍA usar la base de datos en su caso. Tal vez soy parcial, pero al menos te ofrezco cosas que considerar.


Realmente es una decisión de diseño, SQLite ofrece una forma muy sólida de organizar y conservar sus datos, usted solo tiene otras opciones para escribir en un archivo, o para guardar en SharedPrefs, ambos métodos se vuelven mucho más difíciles de administrar una vez que el tamaño de sus datos comienzan a crecer, ya que debe mantener manualmente una lista de objetos y administrar sus nombres, etc. Los datos de la tabla 40 x 40 son lo suficientemente grandes como para justificar el uso de SQLite, incluso si deja caer y recrea la tabla cada 12 horas.

Es posible que desee considerar el uso de una biblioteca ORM para simplificar la búsqueda y el almacenamiento de datos del DB, ORMLite es bueno y compatible con Android

http://ormlite.com/


Si su aplicación depende en gran medida de una conexión a Internet, no necesita almacenar información en la base de datos. Sin embargo, si desea utilizar la aplicación donde tiene mala o ninguna señal, es posible que desee utilizar los valores en caché de la base de datos sqlite. Con una conexión a Internet lenta, es posible que su aplicación no responda, por lo que el almacenamiento en caché puede ser una buena idea, pero no necesariamente en la base de datos sqlite. Debe usar la base de datos sqlite para datos que el dispositivo requiere con frecuencia y que son irrelevantes para su componente de servidor. Si los datos se actualizan con frecuencia, pero solo mientras se ejecuta la aplicación, es posible que desee almacenarlos en la memoria de los dispositivos. Supongo que su aplicación no se ejecuta todo el tiempo dentro de las 12 horas, sino que se llama regularmente para verificar algo.


> update the UI on regular interval from the sqlite in evry 20 minutes

No esperes que tu aplicación esté abierta por una duración tan larga.

Para sugerir con precisión a su caso

Avoid DB Fetch Data at app start or at appropriate time when app is opened and save it in plain java objects. Define Methods within it that perform operation in it. Make map or list to save those POJO Define Seprate Controller Classes within your project to update map of pojo at any specific change to make fresh data available to UI.