Notifiche DB SQLite SQL

Sto scrivendo un'applicazione Android che deve essere notificata each volta che un dato database SQLite cambia (qualsiasi nuova row aggiunta, eliminata o aggiornata).

Esiste un modo programmabile per ascoltare queste notifiche?

  • Come get un layout di inflazione dato un context?
  • Ottieni il path e il nome del file dal risultato della camera
  • Metodo SQLiteDatabase.query
  • Determinare se è in esecuzione su un dispositivo radicato
  • Registra ID del dispositivo direttamente con Amazon SNS
  • Servizio di riconoscimento vocale di Android Continuous Service
  • La scrittura di trigger DB per each tabella è l'unico modo?

  • Colore della barra di scorrimento in RecyclerView
  • Come posso sbloccare lo schermo in modo programmato in Android?
  • Android 4.2.2 USB debugging "Permetta sempre da questo computer" l'opzione di risultato in bersaglio sconosciuta per il dispositivo?
  • RingtonePreference non spara onSharedPreferenceChanged
  • Mantieni l'orientamento dello schermo quando si esegue AsyncTasks
  • il backup completo dei contenuti sms / mms tramite adb
  • 3 Solutions collect form web for “Notifiche DB SQLite SQL”

    SQLite fornisce Callback di notifica di modifica dei dati . Non penso che Android li espone direttamente, ma ha per esempio CursorAdapter che fornisce alcune notifiche di modifica.

    Come pensato da thinksteep tuttavia, ti aspetti che il tuo DB sia cambiato al di fuori dell'ambito della tua applicazione?

    È ansible registrare una class di osservatori come DataSetObserver

    Ogni volta che si cambia qualcosa puoi call cursor.registerDataSetObserver(..) per registrare osservare le modifiche.

    Non è ben documentato ma sono sicuro che ci sono alcuni esempi là fuori

    È anche ansible utilizzare il getContentResolver (). RegisterContentObserver ma purtroppo non ti dice quale tipo di modifica è stato fatto, potrebbe essere un eliminazione, inserimento o aggiornamento.

    Se controlli il ContentProvider che interface con il DB, potresti sparare un'intenzione o utilizzare getContentResolver (). NotifyChange per submit una notifica speciale Uri che identifica sia la tabella che l'azione. Un esempio che puoi notificare con Uri potrebbe essere: il content://my-authority/change/table-name/insert

    Ma anche allora non sai esattamente quali righe sono state effettuate dal cambiamento.

    Sembra che i trigger che scrivono a una tabella di registro di cambiamento ti garantiscano di sentire su tutte le modifiche a prescindere da where provenivano e potete conoscere l'id e l'azione esatta che si è verificato. Purtroppo significa inserire / aggiornare / elimina più lentamente e significa che probabilmente hai bisogno di un Servizio di qualche tipo per elaborare e cancellare le modifiche.

    Mi piacerebbe sentire se queste sono una soluzione migliore là fuori!

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