Consigli di design Android: servizi e ricevitori di trasmissione

2

Sono in procinto di apprendere l'SDK di Android e di creare alcuni progetti per avere una presa sul sistema. L'attuale progetto con cui sto lavorando funziona bene, ma mi piacerebbe avere qualche consiglio su altri modi in cui posso progettarlo.

Ecco cosa deve fare. Quando viene ricevuto un messaggio di testo da un numero specifico, dovrebbe sparare un messaggio tostato che si ripete a un certo intervallo per una durata specifica.

  1. Per farlo funzionare, ho creato un SMS BroadcastReceiver e ho controllato i messaggi in arrivo per il numero che sto cercando.

  2. Se trovato, verrà avviato un IntentService che estrae l'intervallo e la durata dalle preferenze condivise salvate. L'IntentService dovrebbe quindi sparare una trasmissione.

  3. Il BroadcastReceiver per questo lo catturerebbe e userà AlarmManager per gestire le ripetizioni dei messaggi toast.

Tutto funziona perfettamente, ma mi chiedo se c'è un modo più pulito o più efficiente di fare questo? Qualche suggerimento o consiglio?

    
posta basudz 09.04.2013 - 16:55
fonte

1 risposta

1

Penso che i tuoi primi 2 pezzi siano corretti. Mentre potresti combinare i passaggi 1 e amp; 2 in un unico passaggio eseguendo tutto nel ricevitore broadcast, ma non si vuole farlo. La più grande differenza tra un BroadcastReceiver e un IntentService è che l'esecuzione del Broadcast Receiver sul thread principale. Questo significa che vuoi passare il minor tempo possibile. Ciò rende consigliabile seguire lo schema di ricezione di un messaggio nel ricevitore e quindi inviare un messaggio a un IntentService in cui è possibile eseguire il lavoro fuori dal thread principale.

Dove cambierei il mio approccio al tuo problema sono i passaggi 2-3 ... Vorrei fare il lavoro di impostare il primo (o il prossimo) allarme in IntentService o no, a seconda della tua logica di business (cioè utente disabilitato l'allarme alcuni come). Vorrei quindi utilizzare Handler.PostDelayed per avviare lo stesso IntentService - di nuovo - a un certo punto in futuro.

Inoltre, l'uso di toast è un'opzione - ma vorrei anche prendere in considerazione l'uso di una notifica oltre al brindisi (o forse al posto di) ... che fornirebbe un mezzo conveniente per consentire all'utente di rispondere alla condizione di allarme.

    
risposta data 29.05.2014 - 00:26
fonte

Leggi altre domande sui tag