Attività e servizio di background Accesso a SQLite Database

Voglio verificare se un database SQLite è aperto e se lo è, vorrei accedere a quel database all'interno di una class di servizio.

Sono preoccupato e ho visto che molteplici chiamate aperte allo scontro con il database e gettare eccezioni. Perché interrogo il database in entrambe le classi Attività e Servizi, sto tentando di implementare la soluzione consigliata da Commonsware qui: quando chiudi la connessione db su android? Ogni volta che la tua operazione è terminata o dopo l'output dell'app . Tuttavia non voglio chiudere e aprire il database all'interno della class Service se l'attività potrebbe aver bisogno. Da questa risposta Perché utilizzare SQLiteOpenHelper su SQLiteDatabase? , sembra che potrebbe avere un senso implementare un SQLiteOpenHelper per risolvere il problema di fare più chiamate.

  • Anteprima della camera Android su due visioni (anteprima della camera multi-lenti)
  • Come utilizzare più orederbychild nel database Firebase?
  • Apri un collegamento in un webview anziché il browser predefinito
  • Come eseguire una query SQLite all'interno di un'applicazione Android?
  • Android Native Browser duplicando la canvas HTML5 (fine in cromo)
  • Dove posso trovare esempi o tutorial sulla creazione di un block schermo personalizzato Android?
  • Grazie mille per tutto il tuo aiuto !!

  • Servizio di notifica Google / Apple Push (APNS / GCM)
  • Android: AutoCompleteTextView con suggerimenti predefiniti
  • Scraping Web di Android con un Browser senza testa
  • Nuovo SDK di Facebook e OAuthException nelle richieste di Graphpath
  • Android ImageView setImageResource nel codice
  • Come convertire millisecondi in data in SQLite
  • 2 Solutions collect form web for “Attività e servizio di background Accesso a SQLite Database”

    Questo uomo Kevin è una leggenda: http://touchlabblog.tumblr.com/post/24474750219/single-sqlite-connection . Grazie mille.

    Su quel legame condivide la sua soluzione ridicolamente semplice:

    public class DatabaseHelper extends OrmLiteSqliteOpenHelper { private static DatabaseHelper instance; public static synchronized DatabaseHelper getHelper(Context context) { if (instance == null) instance = new DatabaseHelper(context); return instance; } //Other stuff... } 

    Poi nella mia class SQLite ho cambiato il mio codice per sembrare così:

     public BlacklistWordDataSource(Context context) { dbHelper = MySQLiteHelper.getHelper(context); } 

    a onCreat nell'attività inserita datasource.open (); poi fare quello che vuoi e alla fine dell'operatività metti questo per chiudere:

      /** Call after close activity */ @Override protected void onStop() { super.onStop(); //Close dataSource datasource.close(); } 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.