Autore Topic: Riferimento Activity da passare ad un Service  (Letto 1491 volte)

Offline france

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
Riferimento Activity da passare ad un Service
« il: 18 Gennaio 2011, 20:43:19 CET »
0
Salve a tutti,sono un nuovo utente alle prime armi con Android.
Ho un Activity che lancia un Intent che avvia un Service.  Il Service per svolgere determinate operazioni ha bisogno di usare alcune variabili globali dell'Activity e deve verificare ogni 10 secondi se quest'Activity ha il focus per mandare delle notifiche(nel caso negativo).
Avevo pensato di risolvere il problema passando il riferimento dell'Activity al Service ,ma non so come si fà.
I metodi putExtra(... , ...) della classe Intent non mi sono serviti a molto(ho già provato).  Per due Activity , supponendo che A sia l'Activity padre e B l'Activity figlia ,   a B basta richiamare il metodo getParent() per ottenere un riferimento all'Activity padre ;
Ma il Service come fa ad ottenere un riferimento dell'Activity che lo ha fatto partire?

Ringrazio in anticipo per le risposte. 

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Riferimento Activity da passare ad un Service
« Risposta #1 il: 18 Gennaio 2011, 21:14:11 CET »
0
Non ti conviene salvare in una preference lo stato di visibilità dell activity, per poi andarla a verificare nel service?

Offline france

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
Re:Riferimento Activity da passare ad un Service
« Risposta #2 il: 18 Gennaio 2011, 22:46:14 CET »
0
l'idea è buona, ma vedo che l'editor di SharedPreferences permette di memorizzare solo tipi primitivi :-(
Come faccio a salvare il riferimento dell'activity??

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Riferimento Activity da passare ad un Service
« Risposta #3 il: 18 Gennaio 2011, 22:49:47 CET »
0
infatti non ho detto di salvare il riferimento dell'activity.

salvi un booleano   activityVisibile, true/false

Activity | Android Developers


edit: anche le variabili "globali" potresti inserirle nelle preferences
« Ultima modifica: 18 Gennaio 2011, 22:52:58 CET da Qlimax »

Offline france

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
Re:Riferimento Activity da passare ad un Service
« Risposta #4 il: 18 Gennaio 2011, 23:17:22 CET »
0
mmmmm....e poi come faccio dal service a ottenere il riferimento dell'activity? (L'activity deve essere sempre visibile nel ciclo di vita del service)  inoltre i le variabili globali dell'actvity (utilizzate dal service tramite questo "benedetto" riferimento :-))sono dinamiche ....
C'è da dire che non conosco bene la classe SharedPreference....   potresti farmi un esempio??

Offline Qlimax

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 757
  • Respect: +202
    • Google+
    • _Qlimax
    • Mostra profilo
    • www.egsolutions.ch
  • Dispositivo Android:
    Galaxy Nexus - Nexus One - Wildfire - Magic
  • Play Store ID:
    egsolutions.ch
  • Sistema operativo:
    Ubuntu 12.04, Windows 7
Re:Riferimento Activity da passare ad un Service
« Risposta #5 il: 18 Gennaio 2011, 23:36:41 CET »
0
Se l'activity è sempre visibile quando il service è attivo, perchè usi un service?

dai un occhiata alla classe Timer e TimerTask


Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Riferimento Activity da passare ad un Service
« Risposta #6 il: 18 Gennaio 2011, 23:44:33 CET »
0
Oppure semplicemente registri un BroadcastReceiver dentro l'activity e usi gli intent per mandargli le notifiche.

Offline france

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
Re:Riferimento Activity da passare ad un Service
« Risposta #7 il: 19 Gennaio 2011, 00:39:27 CET »
0
« Ultima modifica: 19 Gennaio 2011, 02:59:31 CET da france »