6

Estoy escribiendo una aplicación que permite a las personas configurar alarmas para varias tareas que deben hacer. Mi plan actual es almacenar todos los datos relevantes en una base de datos SQLite. Con ese fin, he creado una clase que amplía SQLiteOpenHelper y lo llené con métodos para manejar todo el CRUD que esperaba tener que incorporar. Sabiendo que generalmente es una mala idea hacer todo el procesamiento en un hilo, buscó maneras de separar el trabajo entre hilos y encontró CursorLoader y LoaderManager, que parecían ideales ya que estaban disponibles en la Biblioteca de compatibilidad de Android. Sin embargo, LoaderManager parece requerir un ContentProvider por el tutorial in the documentation, y realmente no he visto la necesidad de hacer nada con ContentProviders ya que no estaba planeando permitir que otras aplicaciones accedan a los datos. Sin un ContentProvider, no sé cómo se supone que debo obtener un Uri para que mis bases de datos se alimenten en el CursorLoader. ¿Hay alguna forma de seguir usando mi clase que extienda SQLiteOpenHelper y aún implementar LoaderManager para permitirme mantener todos los ListFragments poblados con mi cursor fuera del subproceso de la interfaz de usuario?Confundido sobre CursorLoaders y usándolos con un SQLiteOpenHelper personalizado

+0

Gracias por esta pregunta. Todos sus ejemplos en la documentación solo muestran cómo usar los cursores con los contactos, como si todos necesitáramos la base de datos solo para eso ... – lenooh

Respuesta

4

¿Hay alguna manera de seguir usando mi clase que se extiende SQLiteOpenHelper y todavía implementar LoaderManager para permitir que siga todos los ListFragments pueblan con mi cursor fuera del hilo de interfaz de usuario?

Sólo se necesita una Loader aplicación diferente, uno que no implique un ContentProvider. Ocurre que I wrote one of those.

+0

Parece sólido. Aunque la importación del proyecto desde git provocó que Eclipse arrojara un error de compilación sobre la anotación @Override en onSharedPreferenceChanged(). Aún así, lo probaré. – MowDownJoe

+0

@MowDownJoe: debe establecer su nivel de cumplimiento de Java en 1.6, en lugar del 1.5 que está ahora. – CommonsWare

Cuestiones relacionadas