Autore Topic: Service in Background su db online  (Letto 790 volte)

Offline SalvatoreAD

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Google+
    • Salvatoreadde
    • Mostra profilo
  • Dispositivo Android:
    Nexus 7 2012
  • Sistema operativo:
    linux mint 11, windows 7, windows phone 8, android 4.4.4
Service in Background su db online
« il: 21 Giugno 2014, 10:48:56 CEST »
0
Salve ragazzi, vorrei creare un service che ogni tot minuti controlla un db online e se ci sono nuove row inserite nel db, visualizza una notifica. Premetto che l'app che sto sviluppando funziona solo con un db online, quindi vorrei creare un service che funzioni in background anche se l'app non è aperta e con il collegamento a internet ovviamente. Come posso strutturare il problema e cosa devo creare? Ringrazio chi risponde e sperando di risolvere questo problema al più presto.
(sul db è presente un campo TIMESTAMP per utilizzarlo per il service)

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Service in Background su db online
« Risposta #1 il: 21 Giugno 2014, 11:52:16 CEST »
0
Hai un webservice che fa da interfaccia verso il database vero e proprio?
(se puoi ancora scegliere, avere un webservice, anche fosse un file PHP, è molto più semplice)
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline SalvatoreAD

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Google+
    • Salvatoreadde
    • Mostra profilo
  • Dispositivo Android:
    Nexus 7 2012
  • Sistema operativo:
    linux mint 11, windows 7, windows phone 8, android 4.4.4
Re:Service in Background su db online
« Risposta #2 il: 21 Giugno 2014, 12:23:05 CEST »
0
Hai un webservice che fa da interfaccia verso il database vero e proprio?
(se puoi ancora scegliere, avere un webservice, anche fosse un file PHP, è molto più semplice)

la connessione al Db avviene mediante JSON e script php uplodati sul dominio....

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Service in Background su db online
« Risposta #3 il: 22 Giugno 2014, 18:14:14 CEST »
0
Non l'ho mai fatto, ma se lo dovessi fare prima di tutto svilupperei e testerei richiesta http, ricezione dati e processing direttamente nell'app. Tra l'altro quando mi è capitato di pensare ad una logica di sincronizzazione remota di database, mi sono reso conto che è tutto molto più semplice se ogni riga di database ha anche un campo data+ora relativo all'ultima modifica. Così passando nella richiesta http anche la data+ora dell'ultimo aggiornamento (ad esempio da conservare nelle sharedpreferences), il service mi spedisce indietro solo i dati effettivamente aggiornati.

Una volta messa a punto tutto questa parte, comincerei a spostare questa parte nel service (si trovano facilmente tutorial su questo argomento, per esempio Android Services - Tutorial ).
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline SalvatoreAD

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Google+
    • Salvatoreadde
    • Mostra profilo
  • Dispositivo Android:
    Nexus 7 2012
  • Sistema operativo:
    linux mint 11, windows 7, windows phone 8, android 4.4.4
Re:Service in Background su db online
« Risposta #4 il: 23 Giugno 2014, 09:32:49 CEST »
0
Non l'ho mai fatto, ma se lo dovessi fare prima di tutto svilupperei e testerei richiesta http, ricezione dati e processing direttamente nell'app. Tra l'altro quando mi è capitato di pensare ad una logica di sincronizzazione remota di database, mi sono reso conto che è tutto molto più semplice se ogni riga di database ha anche un campo data+ora relativo all'ultima modifica. Così passando nella richiesta http anche la data+ora dell'ultimo aggiornamento (ad esempio da conservare nelle sharedpreferences), il service mi spedisce indietro solo i dati effettivamente aggiornati.

Una volta messa a punto tutto questa parte, comincerei a spostare questa parte nel service (si trovano facilmente tutorial su questo argomento, per esempio Android Services - Tutorial ).

Allora sul db c'è il time stamp che segna l'ora e il giorno effettivo di modifica, il mio problema è come impostare il service se qualcuno ha un esempio semplice per iniziare....

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Service in Background su db online
« Risposta #5 il: 23 Giugno 2014, 10:07:49 CEST »
0
Allora sul db c'è il time stamp che segna l'ora e il giorno effettivo di modifica, il mio problema è come impostare il service se qualcuno ha un esempio semplice per iniziare....

Il link che ti ho indicato sopra è per iniziare: Android Services - Tutorial
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline SalvatoreAD

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Google+
    • Salvatoreadde
    • Mostra profilo
  • Dispositivo Android:
    Nexus 7 2012
  • Sistema operativo:
    linux mint 11, windows 7, windows phone 8, android 4.4.4
Re:Service in Background su db online
« Risposta #6 il: 23 Giugno 2014, 10:12:18 CEST »
0
Il link che ti ho indicato sopra è per iniziare: Android Services - Tutorial

va bene, più che altro mi interessava un esempio pratico....

Offline 0882

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nessuno
Re:Service in Background su db online
« Risposta #7 il: 23 Giugno 2014, 19:09:53 CEST »
0
anche a me interesserebbe capire come risolvere questo problema del service !
In effetti fare un thread che esegua ogni 10 - 15 secondi una verifica se un dato all'interno del db è cambiato o meno è un' operazione troppo onerosa per la batteria di un cellulare. Esiste qualche operazione che "avverta" il thread che qualcosa è cambiato nel nostro server web senza fare  continue verifiche da parte nostra?

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Service in Background su db online
« Risposta #8 il: 23 Giugno 2014, 20:03:37 CEST »
0
Esiste qualche operazione che "avverta" il thread che qualcosa è cambiato nel nostro server web senza fare  continue verifiche da parte nostra?

Per questo scenario ci sono le notifiche push, implementabili usando i servizi di Google Cloud Messaging.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline 0882

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nessuno
Re:Service in Background su db online
« Risposta #9 il: 01 Luglio 2014, 15:07:50 CEST »
0
Se vi interessa per google ho trovato questa guida su gcm -> Android Push Notifications using Google Cloud Messaging (GCM), PHP and MySQL

Altrimenti , secondo me, sarebbe mooooolto ma mooolto meglio scegliere Parse.
Troverete molta più documentazioni su più piattaforme diverse e inoltre molti più aiuti sulla rete, un piccolo esempio per essere a conoscenza del vero potere di Parse può essere questo :
https://www.youtube.com/watch?v=bBt8_l60sqM
Sito: https://parse.com/
buone push

Offline SalvatoreAD

  • Nuovo arrivato
  • *
  • Post: 9
  • Respect: 0
    • Google+
    • Salvatoreadde
    • Mostra profilo
  • Dispositivo Android:
    Nexus 7 2012
  • Sistema operativo:
    linux mint 11, windows 7, windows phone 8, android 4.4.4
Re:Service in Background su db online
« Risposta #10 il: 06 Luglio 2014, 12:47:08 CEST »
0
Io cercavo un esempio per implementare un service utilizzando un alarmmanager, se ne avete uno da cui prendere esempio è ben accetto :)