Autore Topic: Dati di ritorno dal broadcast receiver  (Letto 750 volte)

Offline Nicolò

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • Mostra profilo
Dati di ritorno dal broadcast receiver
« il: 25 Marzo 2011, 19:06:53 CET »
0
Ciao Ragazzi!Vi illustro la mia situazione: ho un metodo "Scan" su una certa classe diversa da quella in cui ho definito l'activity. Dall'activity creo l'oggetto della classe in questione e chiamo lo "Scan" che  fa lo scanning delle reti wifi. Quando i risultati sono pronti viene lanciato un broadcast receiver e da li io devo tornare dei dati all'activity che ha chiamato "Scan". Come posso fare? In pratica come faccio a tornare qualcosa dal metodo override void onReceive del broadcast receiver, se appunto il tipo di ritorno è void????

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Dati di ritorno dal broadcast receiver
« Risposta #1 il: 25 Marzo 2011, 22:59:42 CET »
0
Forse non hai molto chiaro il concetto di broadcast receiver.
Il tuo scan fa quello che deve fare e, ad un certo punto, invia un messaggio in broadcast.
La tua activity si registra sul messaggio broadcast del tuo scan e, a messaggio inviato, riceve la notifica ed esegue la onreceive.
Nessuno deve passare niente direttamente.
Spero di essermi spiegato.
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Nicolò

  • Utente junior
  • **
  • Post: 51
  • Respect: 0
    • Mostra profilo
Re:Dati di ritorno dal broadcast receiver
« Risposta #2 il: 26 Marzo 2011, 00:48:41 CET »
0
Grazie, la tua risposta è stata chiarissima, ma la conoscevo già:-). Il problema è che a me servono dei dati che processa il broadcast receiver e che deve tornare IN QUALCHE MODO al metodo che ha chiamato lo startscan. In pratica non mi basta visualizzare attraverso il broadcast receiver le reti che ho trovato, ma mi serve pure che questi dati vengano passati in qualche modo al metodo startScan che ha iniziato lo scan. StartScan e BroadcastReceiver non sono legati tra loro, uno inizia lo scan e l'altro si attiva quando i dati sono pronti, ma a me servirebbe che comunicassero o sarebbe già stupendo poter ritornare i dati che ricavo nel broadcast receiver, ovvero una lista di reti trovate. Spero di essere stato più chiaro.

Offline 7h38ugg3r

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1200
  • Respect: +133
    • riccardofischetti
    • th38ugg3r
    • @7h38ugg3r
    • Mostra profilo
  • Dispositivo Android:
    Galaxy-S GT I-9000/ ASUS Eee Pad Transformer
  • Play Store ID:
    Riccardo Fischetti
  • Sistema operativo:
    OS X Lion / Linux Mint 11 (Katya)
Re:Dati di ritorno dal broadcast receiver
« Risposta #3 il: 26 Marzo 2011, 08:03:29 CET »
0
Si, sei stato chiaro.
Che ne pensi di inviare in broadcast, attraverso un altro messaggio, la lista di reti trovate?
7h38ugg3r<=>thebugger
Non conosci Java? Allora sei nel posto sbagliato!

http://www.androidpatterns.com/

Offline Verandi

  • Moderatore
  • Utente normale
  • *****
  • Post: 378
  • Respect: +75
    • Mostra profilo
  • Sistema operativo:
    Windows 7
Re:Dati di ritorno dal broadcast receiver
« Risposta #4 il: 26 Marzo 2011, 11:42:36 CET »
0
Credo tu possa usare il context.startActivity(...) nell'onreceive() del BroadcastReceiver con FlAG_NEWTASK e, come extra dell'Intent, passare i dati che ti servono.
Nel metodo onResume() dell'Activity che ha richiamato lo scan usi il metodo getIntent() ecc, controlli che non sia nullo,  e prendi i dati dall'extra che hai inserito nell'Intent inviato dal BRecevier.
Controllare che non sia nullo farà in modo che i dati vengano presi ed elaborati come vuoi solo quando l'activity viene riavviata dal BroadcastReceiver.
« Ultima modifica: 26 Marzo 2011, 12:59:58 CET da Verandi »