Ho un'attività principale e un servizio associato. Il servizio associato riceve un comando dalla rete, che attiva un messaggio da inviare a un gestore nell'attività principale. Ho ottenuto tutto per funzionare passando il riferimento del gestore al servizio. E poi ... mi sono imbattuto in questa cosa chiamata Messenger.Perché utilizzare un Messenger anziché passare il riferimento a un gestore?
Messenger: riferimento a un gestore, che altri possono utilizzare per inviare messaggi ad esso. Ciò consente l'implementazione di comunicazioni basate sui messaggi attraverso i processi, creando un Messenger che punta a un gestore in un unico processo e consegnando quel Messenger a un altro processo.
Questo ha ispirato alcune domande:
- funziona il processo termine significhiamo che non è necessario utilizzare un messaggero a meno che io generare un processo separato in base alle direttive Process and Thread ?
- È sempre buona norma usare un Messenger?
- Il passaggio di un riferimento al gestore è in genere una cattiva idea?
Questa non è una risposta per la tua domanda, ma ti suggerisco di utilizzare AsyncTask per i thread in background. (vedere http://developer.android.com/reference/android/os/AsyncTask.html) –
Utilizzo un IntentService associato, che dovrebbe gestire le richieste asincrone. Non credo che un AsyncTask sia appropriato, perché la documentazione afferma che "gli AsyncTask dovrebbero essere idealmente usati per operazioni brevi (pochi secondi al massimo.)" _, Mentre il mio servizio sta ascoltando i comandi da Internet e potrebbe essere eseguito per l'intera vita dell'attività. – Rich
Anche come commento laterale, AsyncTasks deve essere richiamato dal thread dell'interfaccia utente – Selecsosi