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?

  • Cosa succede quando la mia attività viene distrutta quando utilizzo IntentService con ResultReceiver
  • Creare in modo programmato Parallelogram Disegnabile in Android
  • onViewCreated con la libreria di compatibilità
  • Scorri tra le attività in android
  • Imansible risolvere il metodo 'getSupportFragmentManager ()' all'interno del frammento
  • Android: setSelection che non ha effetto su Spinner
  • La scrittura di trigger DB per each tabella è l'unico modo?

  • MapView - Android
  • Come faccio a collegarmi da un'applicazione gratuita a un'applicazione a pagamento nel mercato Android?
  • Ionic Android Nessuna risorsa trovata che corrisponde al nome dato .. cardBackgroundColor
  • findViewById all'interno del frammento
  • Come eseguire un "Hierarchy Viewer" in un dispositivo vero?
  • Android Wi-Fi Direct: onPeersAvailable
  • 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.