Autore Topic: Activity e BroadcastReceiver  (Letto 723 volte)

Offline lordwhiskey

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung GT-S5830
  • Sistema operativo:
    Ubuntu 11.10, OsX 10.6
Activity e BroadcastReceiver
« il: 18 Ottobre 2011, 09:48:32 CEST »
0
Ciao a tutti, è il primo post che scrivo (dopo quello di presentazione).

Sono nuovo nel mondo Android, quindi perdonatemi se sto scrivendo nel posto meno opportuno e/o se sto dicendo delle cavolate.  :-P

Parto subito però con il mio quesito.

Per fare un po' di pratica, stavo cercando di scrivere un semplice programmino che sapesse gestire l'invio e la ricezione di SMS.
Per la precisione cercavo di emulare (in piccolo) quello che alcuni widget già fanno per il discorso del credito residuo ecc.. ecc..

Mediante un bottone di un'activity io invio un sms al 40916 usando la classe SmsManager e fino a qui tutto va bene.

Successivamente ho poi implementato una classe SMSReceiver che estende la classe BroadcastReceiver, la quale è definita nel manifest come la classe che dovrà essere chiamata in causa nel momento in cui un SMS viene ricevuto.
Se poi l'sms ricevuto arriva dal 40916 effettuo un paio di operazioni di parsing ed estraggo l'informazione che mi serve.
La classe di ricezione in sé funziona perfettamente, nel senso che riceve i dati e (per debug) ho inserito un popup Toast che appare su schermo, però non capisco come poter far comunicare questa classe con la TextView dell'activity in cui dovrà essere inserito il dato.
Grazie

Offline ROS

  • Utente normale
  • ***
  • Post: 196
  • Respect: +5
    • Mostra profilo
  • Sistema operativo:
    Ubuntu 10.04
Re:Activity e BroadcastReceiver
« Risposta #1 il: 18 Ottobre 2011, 11:45:00 CEST »
0
La classe di ricezione in sé funziona perfettamente, nel senso che riceve i dati e (per debug) ho inserito un popup Toast che appare su schermo, però non capisco come poter far comunicare questa classe con la TextView dell'activity in cui dovrà essere inserito il dato.
Grazie
Tu vuoi inserire il tuo dati in un'activity, ma l'activity devi prima avviarla: dovresti quindi usare una PendingIntent, se ho capito bene il problema...  :-)

Offline lordwhiskey

  • Nuovo arrivato
  • *
  • Post: 4
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung GT-S5830
  • Sistema operativo:
    Ubuntu 11.10, OsX 10.6
Re:Activity e BroadcastReceiver
« Risposta #2 il: 20 Ottobre 2011, 23:13:36 CEST »
0
Ciao!

grazie mille per la risposta.

Dunque mi sono informato sui pendingintent, ma se devo essere onesto non ci ho capito molto, anche perché non mi sembra molto chiara la reference guide di android ( o almeno per me è così  ;-) ).

Alla fine, scervellandomi, sono arrivato alla seguente situazione.

Installo la mia applicazione e si registra il broadcastreceiver che d'ora in poi abbrevio con BR.

Una volta che arriva un SMS, il BR viene chiamato in causa e a termine di tutte le operazioni necessarie di parsing del messaggio, ho creto un Intent con putExtra tali da memorizzare i dati da passare all'activity e con un'action personalizzata tipo "AGGIORNA_CREDITO".

Dalla parte dell'activity avviata, nel metodo onResume() ho fatto in modo che se l'action è uguale a quella detta sopra, prendo l'intent né estraggo gli extra e li inserisco nelle view delle activity.

Non so se è la soluzione più "performante" o elegante, solo che è l'unico giro che sono riuscito a fare per adesso.

Grazie ancora per la risposta comunque!!!