En una aplicación de Android, ¿debo tener un proveedor de contenido por tabla o sólo uno para toda la aplicación?
Tengo años de experiencia con el desarrollo de Microsoft .NET (principalmente C #) y he estado trabajando para llegar a la velocidad en Android y Java. Hasta ahora, he construido una pequeña aplicación con un par de pantallas y un proveedor de contenido de trabajo.
Todos los ejemplos que he visto para desarrollar proveedores de contenido suelen funcionar con una sola tabla, así que tengo la impresión de que ésta era la convención.
- Android DataPickerDialog onDateChanged no está disparando
- Cambiar la carpeta de salida para Android R.java en Eclipse cuando se utiliza Maven
- Serialización y subclases
- Cómo saber cuando Fragmento se vuelve invisible
- EOFException al leer la cinta QueueFile
Construí un par de proveedores de contenido para otras tablas y me encontré con el "URI desconocido" IllegalArgumentException cuando intenté probarlos. La excepción está siendo lanzada por uno de mis proveedores de contenido, pero no el que tenía la intención de llamar.
Parece que mi aplicación está usando el primer proveedor de contenido en el archivo AndroidManifest.xml, que ahora me pregunta si debería tener un solo proveedor de contenido para toda la aplicación.
¿Existen mejores prácticas y / o ejemplos para trabajar con varias tablas en una aplicación de Android? ¿Debo tener un proveedor de contenido por tabla o sólo uno para toda la aplicación? Si el primero, ¿cómo puedo resolver URIs al proveedor adecuado? Si este último, ¿cómo puedo evitar que mi código de proveedor de contenido se contamine con declaraciones de conmutación?
- No se puede reducir la ráfaga con proguard
- Get Value Of Day Month forma objeto de la fecha en Android?
- Android: Necesidad de crear un objeto Preferencias compartidas en c ++ NDK y almacenar algún valor booleano
- ¿Por qué el tipo primitivo corto es significativamente más lento que largo o int?
- El evento de clic de botón de Android AppWidget no se recibe después de que el lanzador de inicio de fuerza detiene
- Android @NonNull utilidad
- ¿Cuál sería un método para crear un contador de números en Android?
- Configuración de JAVA_HOME para intelliJ?
El 99% de las aplicaciones de Android no necesitan proveedores de contenido.
Los proveedores de contenido tienen un uso principal: la comunicación entre procesos. Si usted es:
- Esperando que otros desarrolladores accedan a sus proveedores de contenido, o
- Se están integrando a Android en lugares que requieren un proveedor de contenido (por ejemplo, sugerencias de búsqueda para el cuadro de búsqueda rápida)
Entonces, y sólo entonces, implementa un proveedor de contenido.
De lo contrario, todo lo que está haciendo es añadir sobrecarga a su aplicación y hacer que su código sea más difícil de mantener.
Por lo tanto, si su aplicación es uno de los 99% que no necesita proveedores de contenido, sólo deshacerse de la que tiene y acceder a su contenido por otros medios (por ejemplo, SQLiteDatabase
).
Bueno, tengo que estar en desacuerdo con CommonsWare. Si desea evitar IllegalStateExceptions y otros problemas que necesita para utilizar Cursorloader. Ellos manejan múltiples cosas para usted y asegurarse de que los cursores son pulidos. Por lo tanto, necesita proveedores de contenido. La pregunta inicial no es contestada todavía pensamiento. No sé cuál es la mejor práctica para el número o los proveedores de contenido y tablas. Pero dentro del método .query comprueba el ID URI. Usted puede probar si el uri id tiene un valor específico y construir su consulta de esa manera.
- Cómo hacer un GUI de mensajería instantánea con burbujas
- Android TextInputLayout cambia el estilo de EditText después de establecer el error en null