Autore Topic: dialogo tra servizio e activity  (Letto 700 volte)

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
dialogo tra servizio e activity
« il: 02 Ottobre 2012, 16:44:04 CEST »
0
Ho un servizio che viene creato in una mainActivity si occupa di comunicare con un server, e non appena il servizio riceve qualcosa voglio fare in modo che quello che è stato ricevuto venga mandato ad un'altra activity...
quest'altra activity può essere attiva oppure può essere già stata terminata. se è stata terminata deve essere fatta ripartire
qual è il miglior modo per fare tutto ciò?

Offline Phate

  • Utente junior
  • **
  • Post: 123
  • Respect: +6
    • Mostra profilo
  • Dispositivo Android:
    Samsung galaxy S
  • Sistema operativo:
    Windows 7
Re:dialogo tra servizio e activity
« Risposta #1 il: 02 Ottobre 2012, 17:42:22 CEST »
0
Per me sbagli proprio l'approccio, io ti direi di fare così:
1)Appoggiati a un db sqllite e fai in modo che il service salvi li dentro i dati che riceve.
2)Fai in modo che l'activity che fa visualizzare i dati venga notificata di ogni cambiamento al db: in questo modo se l'utente ce l'ha davanti vede i dati cambiare (guarda il mio tutorial sui cursor loaders oppure fatti una logica tua con callbacks).
3)Utilizza il notification service: insomma fai comparire all'utente una notifica push dicendogli che ci sono novità e quando lui preme sulla notifica si avvia l'activity di visualizzazione.

Offline topix93

  • Utente junior
  • **
  • Post: 84
  • Respect: +1
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    LG Optimus ONE
  • Sistema operativo:
    Windows 7 Professional 64 bit, Ubuntu 11.04
Re:dialogo tra servizio e activity
« Risposta #2 il: 03 Ottobre 2012, 08:50:31 CEST »
0
Cosi come dici tu non va bene per il mio caso... cmq ho risolto in questo modo:
- nell'android manifest ho aggiunto android:launchMode="singleTop" alla mia activity;
- nel servizio ogni volta lancio l'activity e faccio un sendBroadcast(intent) con all'interno le info di quello che ho ricevuto;
-nel metodo onResume dell'activity registro un nuovo broadcastReceiver