Autore Topic: Thread o Service  (Letto 677 volte)

Offline Lomba1986

  • Utente normale
  • ***
  • Post: 173
  • Respect: +1
    • Mostra profilo
Thread o Service
« il: 17 Aprile 2012, 10:19:21 CEST »
0
Ciao a tutti

mi servirebbe un parere da chi ne sa più di me...

Se volessi chiedere costamente dei dati a un server in modo costante e temporizzato è meglio un Service o un semplicissimo thread?
Non esistono problemi, ma solo soluzioni...

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Thread o Service
« Risposta #1 il: 17 Aprile 2012, 14:32:30 CEST »
0
un service, lo gestisci meglio
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Lomba1986

  • Utente normale
  • ***
  • Post: 173
  • Respect: +1
    • Mostra profilo
Re:Thread o Service
« Risposta #2 il: 17 Aprile 2012, 14:56:12 CEST »
0
Ma un Service si comporta come un thread? Nel senso posso gestire la temporizzazione in maniera pulita?
PEr quanto riguarda l'eventuale blocco o distruzione?

Ciao  a tutti
Non esistono problemi, ma solo soluzioni...

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Thread o Service
« Risposta #3 il: 17 Aprile 2012, 17:33:57 CEST »
0
Ma un Service si comporta come un thread? Nel senso posso gestire la temporizzazione in maniera pulita?
PEr quanto riguarda l'eventuale blocco o distruzione?

Ciao  a tutti
un service non è altro che un "Servizio" che esegue codice in background. Il thread sarebbe legato all'activity in cui viene creato, cioè se essa viene distrutta, il thread facilmente si perde, se usi un service, finchè il sistema non va in crisi o finchè non lo stoppi tu, lui continua. Nel service, a parte la GUI, ci fai tutto quello che fai nell'activity
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Lomba1986

  • Utente normale
  • ***
  • Post: 173
  • Respect: +1
    • Mostra profilo
Re:Thread o Service
« Risposta #4 il: 18 Aprile 2012, 09:53:48 CEST »
0
Un'altra domanda per capire una cosa...

Se ho una gestione di una schermata con delle tab, e queste devono essere refreshate... ovviamente una sola farà partire il service giusto?
E' possibile tramite un service aggiornare contemporaneamente più tab?
Non esistono problemi, ma solo soluzioni...

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:Thread o Service
« Risposta #5 il: 18 Aprile 2012, 23:04:45 CEST »
0
Un'altra domanda per capire una cosa...

Se ho una gestione di una schermata con delle tab, e queste devono essere refreshate... ovviamente una sola farà partire il service giusto?
E' possibile tramite un service aggiornare contemporaneamente più tab?
le tab contengono listview o dati "statici" tipo textview ecc?
io normalmente uso i service per aggiornare la base dati, che sia un db sqlite, delle classi in memoria o altro, e poi mando in Broadcast il messaggio di update completato.
Il tutto per te dipende da che dati devi aggiornare e quanti.
Se sono tanti io farei un update nel service che scrive su db e poi invia via broadcast i vari messaggi di update:
-Aggiorni i dati del tab1, scrivi nel db, mandi in broadcast il messaggio "TAB1.Updated"
-Aggiorni i dati del tab2, scrivi nel db, mandi in broadcast il messaggio "TAB2.Updated" e cosi via

I vari tab avranno al loro interno i broadcast receiver che riceveranno SOLO l'evento relativo a loro stessi, una volta ricevuto l'evento, aggiorneranno le view.
Nella onResume dei vari tab poi, ci metti il refresh dei dati da db cosi sei sicuro che non ti sei perso per strada dei refresh

PS: se non vuoi un db, o invii i dati nell'intent del broadcast, oppure scrivi in memoria in qualche classe singleton
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline Lomba1986

  • Utente normale
  • ***
  • Post: 173
  • Respect: +1
    • Mostra profilo
Re:Thread o Service
« Risposta #6 il: 19 Aprile 2012, 08:51:25 CEST »
0
Anche io avevo pensato a un'idea del genere...

Quando effettuo onPause della tab che riceve gli aggiornamenti scrivo nelle Shared preference o simile i dati relativi....
nell' onResume dell'altra tab per prima cosa leggo tali valori...

Ciao a tutti
Non esistono problemi, ma solo soluzioni...