2015-12-14 7 views
7

Ho un database SQLite su Android e un database MySQL su un server. Voglio sincronizzare questi database quando un utente modifica i dati sul proprio telefono o modifica i dati su un sito Web.Come sincronizzare i database SQLite e MySQL usando le notifiche push?

So come aggiornare il database MySQL sul server quando un utente apporta modifiche sul proprio telefono ma non so come aggiornare il database Android quando un utente apporta modifiche sul sito web.

Ho letto in notifica push e credere che questo sia un buon percorso da seguire, ma ho un paio di domande su di esso:

  1. quando un utente aggiorna i dati attraverso un sito web che invierà una notifica push al telefono dell'utente dicendo che sono state apportate modifiche. È possibile attivare questa notifica push per aggiornare il database di Android con le nuove modifiche apportate al database del server?

  2. Cosa succede se un utente disattiva le notifiche push? Sarò ancora in grado di attivare il loro database Android per essere aggiornato?

ho anche leggere su SQLite e MySQL database di sincronizzazione e ho trovato questo post SQLite and MySQL sync ma non ha trovato il posto utile per la mia situazione.

Le notifiche push sono un buon modo per andare o dovrei utilizzare un approccio diverso?

In breve: voglio che il dispositivo Android rilevi le modifiche nel database MySQL e aggiorni il suo database SQLite senza che l'utente abbia avviato la sincronizzazione.

risposta

0

Ho paura di non aver usato le notifiche push. Ma una soluzione potrebbe essere: è possibile creare una prima chiamata di metodo a un evento di polling asincrono dal launcher onCreate() che cerca il server per vedere se sono state registrate eventuali modifiche (anche se un'API di qualche tipo) in MySQL e quindi aggiornare SQLite in questo modo? Dal momento che è la prima cosa che succede al momento del lancio, tecnicamente l'utente non la sta iniziando. Questo non verrà aggiornato durante l'uso dell'app, a meno che non si ripeta il sondaggio a intervalli regolari?