Mi aplicación Android incluye una base de datos SQLite con una clase SQLiteOpenHelper
para ayudar a administrarla. Durante el uso de la aplicación, el usuario puede realizar algunas operaciones como agregar/eliminar/actualizar, etc. en la base de datos.¿Cuándo debería hacer ciertas operaciones SQLite en otro hilo (no en el hilo principal)?
En algunos puntos se conoce el tamaño de la operación, así:
- usuario hace clic en el botón para guardar el elemento
- la
SQLiteDatabase
realiza una solainsert
consulta - usuario continúa utilizando aplicación
En otras áreas de la aplicación, la operación puede ser grande, como insertar más de 10 elementos en la base de datos a la vez.
Preguntas:
- debo enhebrar operaciones simples como insertar/actualizar/borrar/viendo 1 del producto?
- ¿llevará más tiempo insertar 1 elemento en una tabla que contiene muchos elementos (como 30+) de los que llevaría insertar en una tabla sin elementos?
- si no necesito enhebrar operaciones tan simples, ¿en qué punto sugiere iniciar enhebrarlas?
cuando digo hilo quiero decir usando un hilo que no es el principal hilo de interfaz de usuario.
editar: Me doy cuenta de que las operaciones pequeñas no toman mucho tiempo y podría hacerlo bien en el hilo principal. Me preocupa que sea una mala práctica ejecutarlos en el hilo principal y me gustaría una aclaración.
¿Qué pasa con la conversación sobre las aplicaciones de cliente REST de Android en Google IO. Él dice "nunca ejecute las operaciones de la base de datos en el contexto del hilo principal". Espero no sacar eso del contexto, pero puede ser una buena práctica. – zidarsk8
Todavía estoy de acuerdo con la última frase: no optimices lo que no es lento. Si su base de datos es muy pequeña, no debería ser necesario optimizarla. Agregar varios subprocesos aumentará mucho la complejidad de su aplicación e introducirá un fascinante caldo de cultivo para los errores de sincronización que son imposibles de detectar y depurar. – EboMike
Utilice los cargadores, ahora están disponibles como parte de la biblioteca de compatibilidad. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz