Utilizzo corretto di Sqlite su Android (SQLiteOpenHelper, connessioni, thread principale, ecc …)

Sto cercando informazioni su SQLite su Android e leggo alcuni capitoli di alcuni libri su Android Programming, ma non so come usare veramente SQLite su Android correttamente.

Sto sviluppando un'applicazione che dispone di Attività, Servizi e BroadcastReceivers e tutti devono leggere e scrivere dati nel database. Quindi ho alcune domande:

  • Android facebook / twitter share button
  • C'è un quadro di realtà ampliato che funziona su iPhone, Android e Windows Phone 7?
  • Come accedere a `questo` all'interno di un renderRow di un ListView?
  • disabilitare il gesto di scorrimento che apre il cassetto di navigazione in android
  • Google Drive Android API (GDAA) getResourceId () restituisce null (timing issue)
  • Come aggiungere l'account Google in android tramite AccountManager.addaccountExternally ()?
    • Dov'è il posto migliore per creare l'istanza SQLiteOpenHelper ? Ho letto di questo, e sembra che il modo migliore è avere solo SQLiteOpenHelper per tutta l'applicazione.
    • Quando e where devo get SQLiteDatabase object dbHelper.getReadableDatabase() chiamando dbHelper.getReadableDatabase() (o getWritableDatabase )? Devo farlo su each query, chiudendola dopo each query?
    • Ho letto che non dovrei mai fare operazioni di database nel thread principale, quindi sto generando un task Async per each operazione di database che faccio in un'attività, è questo il modo migliore?

  • Diversi colors in TextView definiti in XML
  • Debug del database sqlite sul dispositivo
  • È essenziale chiudere il database?
  • Android Studio v0.5.2 su Mac è ora disponibile per le applicazioni di produzione?
  • Mapbox Android: Come get indicazioni dalla posizione corrente a una destinazione scelta?
  • Android Come get il numero di telefono dal telefono Dual sim
  • 2 Solutions collect form web for “Utilizzo corretto di Sqlite su Android (SQLiteOpenHelper, connessioni, thread principale, ecc …)”

    La maggior parte della domanda è piuttosto soggettiva. Ma lasciami prendere un pugnalato

    Dov'è il posto migliore per creare l'istanza SQLiteOpenHelper? Ho letto di questo e sembra che il modo migliore è avere solo SQLiteOpenHelper per tutta l'applicazione.

    È ansible creare una class nel progetto che estende SQLiteOpenHelper . Ciò è utile quando si accede allo stesso database in più Activities nell'applicazione.

    Quando e where devo get l'object SQLiteDatabase chiamando dbHelper.getReadableDatabase () (o getWritableDatabase)? Devo farlo su each query, chiudendola dopo each query?

    Questo sarebbe fatto nella class che estende SQLiteOpenHelper . Ad esempio: ( questo è un estratto di un articolo di Vogella fornito alla fine di questo post )

     public void open() throws SQLException { database = dbHelper.getWritableDatabase(); } 

    E in un'attività che utilizzerà la class:

     CommentsDataSource datasource = new CommentsDataSource(this); datasource.open(); 

    E una Cursor e la connessione del Database effettuata dall'attività dovrebbero essere chiusi quando si è fatto con il recupero, la modifica, l'aggiunta, ecc con il Database .

    Il codice di cui sopra avrà senso quando hai letto la pagina collegata in seguito.

    Ho letto che non dovrei mai fare operazioni di database nel thread principale, quindi sto generando un task Async per each operazione di database che faccio in un'attività, questo è il modo migliore?

    Idealmente, sì. Vorrei personalmente raccomandare l'utilizzo di Asynctask specialmente quando avresti a che fare con grandi set di record.

    Infine, suggerisco di leggere su questo tutorial di Lars Vogella: http://www.vogella.com/articles/AndroidSQLite/article.html . Affronterà la maggior parte delle tue preoccupazioni e delle vostre domande. In bocca al lupo. 🙂

    1.Where è il posto migliore per creare l'istanza SQLiteOpenHelper?

    SQLiteOpenHelper ti aiuta a connettersi con le tabelle definite usando. È quindi ansible definire tutte le tabelle in una class SQLiteOpenHelper.

    2.When e where, devo get l'object SQLiteDatabase chiamando dbHelper.getReadableDatabase () (o getWritableDatabase)?

    Ogni volta che si desidera scrivere i dati nelle tabelle definite è necessario call getWritableDatabase e per leggere da essi è necessario getReadableDatabase

    È ansible eseguire funzioni CRUD (Crea, Recupera, Aggiorna, Elimina) per questi scopi.

    3. Mai fare operazioni di database nel thread principale!

    Non sono sicuro di questo.

    beh ecco un link per iniziare con SQLite- http://www.androidhive.info/2011/android-sqlite-database-tutorial/

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.