Soy un programador novato androide y recientemente he seguido un tutorial que muestra cómo crear una base de datos SQLite local y luego acceder a la base de datos utilizando SQLiteDatabase.rawQuery para devolver un cursor. Me gustaría modificar mi aplicación para usar CursorLoader, que aparentemente es una mejor manera de acceder a la base de datos. Mi problema es que el constructor CursorLoader espera que se proporcione un URI. ¿Acabo de ingresar "file: /// [path to db]"? Parece un poco desordenado.CursorLoader, obtener URI de base de datos local
Respuesta
La razón detrás del cargador del cursor aceptar un URI es que se espera para consultar una ContentProvider y no una base de datos en bruto.
Por lo tanto, sugieren que se crea un proveedor de contenidos que utiliza internamente su base de datos, de modo que usted puede utilizar la clase CursorLoader directamente.
La ventaja de usar un proveedor de contenidos es que encapsula mejor sus datos y se puede aprovechar fácilmente una gran cantidad de APIs de Android directamente.
Estas son algunas guías sobre cómo crear un proveedor de contenido
http://developer.android.com/guide/topics/providers/content-provider-creating.html
http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/
Si decide no crear un ContentProvider puede extender AsyncTaskLoader o el cargador cursor directamente para consultar los datos la forma que tu quieras.
Gracias esto ayuda un poco. – user1681358
Tener un vistazo a la biblioteca de LoaderEx CommonsWare. Le permite usar un Loader
con un SQLiteDatabase
local, por lo que no tiene que tomarse la molestia de crear su propio ContentProvider
.
Me gustaría que al menos mi propia implementación ContentProvider funcione, porque parece ser la forma "estándar" de hacer las cosas, incluso si parece demasiado exagerada para las pequeñas aplicaciones independientes. Pero echaré un vistazo a esta biblioteca en algún momento una vez que entienda los conceptos básicos. – user1681358
De git: 'ESTE PROYECTO ESTÁ DESCONTINUADO. Úselo bajo su propio riesgo. Si está manteniendo un tenedor público que le gustaría que otros consideren usar, agregue un problema solicitando un enlace al tenedor de este README. – zeroDivider
- 1. ¿Cómo obtener una base de datos periódica local persistente?
- 2. base de datos local rápida
- 3. Base de datos para almacenamiento local
- 4. Base de datos local sin servidor sql
- 5. ¿Sincronizar base de datos remota a local?
- 6. Datos predeterminados de almacenamiento de la base de datos local
- 7. Error al tirar de la base de datos mysql en la base de datos mysql local
- 8. Android CursorLoader
- 9. Limite la consulta en CursorLoader
- 10. CursorLoader para múltiples ContentProviders
- 11. GROUP BY con CursorLoader
- 12. javax.xml.bind.UnmarshalException: elemento inesperado (uri: "", local: "Grupo")
- 13. Android: CursorLoader, LoaderManager, SQLite
- 14. Lista paginada y CursorLoader
- 15. contraseña de administrador de base de datos local sqlexpress
- 16. ¿Mejores prácticas para consultar la base de datos SQLite en ListFragment con CursorLoader?
- 17. ¿Cómo puedo obtener el URI base en AppEngine?
- 18. cómo obtener el volcado remoto de la base de datos mysql en mi máquina local?
- 19. Almacenamiento de base de datos local para aplicaciones WinRT/Metro
- 20. ViewPager y base de datos
- 21. AutoCompleteTextView respaldado por CursorLoader
- 22. base de datos SQLite Android local, bloqueo, y la versión
- 23. Google App Engine sigue eliminando mi base de datos local
- 24. Appengine jdoconfig.xml para la base de datos local
- 25. Buscando una base de datos local para D2009 +
- 26. Obtener el ID de un nuevo registro insertado en una base de datos de la Uri regresado
- 27. Acceso Meteor base de datos de producción
- 28. Encriptador de código: obtener el último segmento de URI
- 29. ¿Exportar de la base de datos de App Engine a la base de datos de desarrollo local?
- 30. cómo obtener Eclipse Workspace URI de ubicación
Debe publicar el enlace al tutorial para completar – Merlin