Autore Topic: BroadcastReceiver.  (Letto 948 volte)

Offline giuseppe500

  • Utente junior
  • **
  • Post: 110
  • Respect: 0
    • Mostra profilo
BroadcastReceiver.
« il: 08 Marzo 2014, 14:28:13 CET »
0
ciao.
Sto cercando di capire il BroadcastReceiver, ho capito che puo essere attivato da un intent e che lavora in background , ma quale è la sua reale utilità?
ad es fare partire servizi ? o ......
E' praticamente un activity senza ui che sta in background, e riceve e gestisce dati?
E' meglio mantenerla leggera o puo gestire codice anche pesante senza essere "uccisa" dall' os?
per es io ho un servizio che raccoglie messaggi da un webservice rest(sull'ordine dei 10 messaggi ogni due ore) , mette questi dati su db e al momento opportuno(a una certa ora) spedisce i messaggi, si puo fare col broadcast receiver la spedizione del messaggio?
Inviando i dati dal service? o meglio gli id dei messaggi poi forse nel broadcast accedo al db , estraggo i messaggi e li invio.
o è meglio farlo in un altra maniera ?

ps.
quali sono le tempistiche di attivazione del service perchè l'os non chiuda il servizio o per non sentire troppi appesantimenti?
ogni ora potrebbe andare bene?

grazie.

grazie.

Offline Hildian

  • Utente junior
  • **
  • Post: 60
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Meizu M1 Note
  • Sistema operativo:
    Mac OS X 10.8.5 e Windows 7
Re:BroadcastReceiver.
« Risposta #1 il: 08 Marzo 2014, 14:57:26 CET »
0
un broadcast receiver non deve necessariamente trovarsi all'interno di un'activity. si può registrare un receiver se si vuole essere al corrente di un evento di sistema senza dover avviare l'intera applicazione quando si verifica.
I BroadcastReceiver possono essere registrati per  conto loro nel tag <receiver>. In pratica, li utilizzo come modo per ricevere informazioni dal sistema che possono non richiedere all'utente di mostrare qualcosa all'utente. Avviare un'ativity per poi chiuderla se non è necessaria è molto più costoso in termini di risorse che catturare il broadcast intent con un receiver e poi avviare un'activity solo quando è necessario.

Offline giuseppe500

  • Utente junior
  • **
  • Post: 110
  • Respect: 0
    • Mostra profilo
Re:BroadcastReceiver.
« Risposta #2 il: 08 Marzo 2014, 15:32:01 CET »
0
e nel broadcastReceiver posso eseguire codice anche costoso in termini di risorse ? o è meglio farle direttamente nel service(credo di no ma chiedo).
lo chiedo perchè spesso negli esempi che ho letto c'è sempre l'accoppiata broadcast/service
io dovrei reperire dei messaggi (dal db)e spedirli dell ordine di 10/20 messaggi ogni giorno e volevo fare un servizio che ogni ora reperisce i messaggi da spedire dalla rete con un android-async-http-1.4.4.jar, una libreria che mi è stata consigliata qui sul forum e li mette sul db.
poi un altro service che quando le condizioni sono propizie(ora e data per non mandare messsaggi alle 3 di notte di domenica) prende i dati da db e li invia in formato sms, potrei chiamare un broadcast che lancia i messaggi , sarebbe forse meglio?
e cosi anche per inserire i dati nel db?

grazie

Offline Hildian

  • Utente junior
  • **
  • Post: 60
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Meizu M1 Note
  • Sistema operativo:
    Mac OS X 10.8.5 e Windows 7
Re:BroadcastReceiver.
« Risposta #3 il: 08 Marzo 2014, 15:35:28 CET »
0
Va benissimo nel BroadcastReceiver
Oppure puoi dichiarare nel tag <receiver> così anche in back ground funziona

Inviato dal mio GT-I9505 utilizzando Tapatalk


Offline giuseppe500

  • Utente junior
  • **
  • Post: 110
  • Respect: 0
    • Mostra profilo
Re:BroadcastReceiver.
« Risposta #4 il: 08 Marzo 2014, 15:42:09 CET »
0
intanto ti rigrazio per la disponibilità e la gentilezza poi però cosa intendi per
Citazione
Oppure puoi dichiarare nel tag <receiver> così anche in back ground funziona
scusa ma sono agli inizi e non ho visto questa cosa sul libro che sto leggendo.
ultima domanda anche l'utilizzo della richiesta asincrona per il reperimento dei dati dal web service  va bene nel receiver?
in pratica i service servono solo per dare l'input ai receiver che eseguono le operazioni piu pesanti , è corretto così?

ciao.
grazie.

Offline Hildian

  • Utente junior
  • **
  • Post: 60
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Meizu M1 Note
  • Sistema operativo:
    Mac OS X 10.8.5 e Windows 7
Re:BroadcastReceiver.
« Risposta #5 il: 08 Marzo 2014, 15:47:18 CET »
0
Per la prima domanda "richiesta asincrona ....." non sò aiutarti.
Ma per la seconda hai detto bene un service serve solo per dire esempio: "ehi dimmi quando ricevo che si è disattivato il wifi". Ed il receiver te lo comunica.

Inviato dal mio GT-I9505 utilizzando Tapatalk


Offline giuseppe500

  • Utente junior
  • **
  • Post: 110
  • Respect: 0
    • Mostra profilo
Re:BroadcastReceiver.
« Risposta #6 il: 08 Marzo 2014, 15:54:03 CET »
0
grazie
ultimissima cosa , poi per oggi ti lascio stare(scusa).
Citazione
Oppure puoi dichiarare nel tag <receiver> così anche in back ground funziona
con questo cosa intendi?cosa devo dichiarare nel tag receiver? per fare funzionare in background?
ciao.

Offline Hildian

  • Utente junior
  • **
  • Post: 60
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Meizu M1 Note
  • Sistema operativo:
    Mac OS X 10.8.5 e Windows 7
Re:BroadcastReceiver.
« Risposta #7 il: 08 Marzo 2014, 16:02:27 CET »
0
Tranquillo anche io sono nuovo e seguo un libro e questo forum.

Developer.android.com/guide/topics/manifest/receiver-element.html

Inviato dal mio GT-I9505 utilizzando Tapatalk


Offline Hildian

  • Utente junior
  • **
  • Post: 60
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Meizu M1 Note
  • Sistema operativo:
    Mac OS X 10.8.5 e Windows 7
Re:BroadcastReceiver.
« Risposta #8 il: 08 Marzo 2014, 16:02:53 CET »
0
Ti ho dato un link con scritto tutto ciò che devi dichiarare e il perchè e a cosa serve.

Inviato dal mio GT-I9505 utilizzando Tapatalk


Offline giuseppe500

  • Utente junior
  • **
  • Post: 110
  • Respect: 0
    • Mostra profilo
Re:BroadcastReceiver.
« Risposta #9 il: 08 Marzo 2014, 16:07:38 CET »
0
non so come ringraziarti.
ciao.

Offline Hildian

  • Utente junior
  • **
  • Post: 60
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Meizu M1 Note
  • Sistema operativo:
    Mac OS X 10.8.5 e Windows 7
Re:BroadcastReceiver.
« Risposta #10 il: 08 Marzo 2014, 16:09:27 CET »
0
Ciao ^-^ Buon lavoro.

Inviato dal mio GT-I9505 utilizzando Tapatalk