Aggiunta di punti alla risposta accettata:
Vedi l'uso di IntentService nell'API di Android. per esempio:
public class SimpleWakefulService extends IntentService {
public SimpleWakefulService() {
super("SimpleWakefulService");
}
@Override
protected void onHandleIntent(Intent intent) { ...}
Per creare un componente IntentService per la tua app, definisci una classe che estende IntentService e al suo interno, definisci un metodo che sovrascrive onHandleIntent ().
Inoltre, vedi il codice sorgente di IntentService, è costruttore e metodi del ciclo di vita come onStartCommand ...
@Override
public int More ...onStartCommand(Intent intent, int flags, int startId) {
onStart(intent, startId);
return mRedelivery ? START_REDELIVER_INTENT : START_NOT_STICKY;
}
L'assistenza insieme a un AsyncTask è uno dei migliori approcci per molti casi d'uso in cui il payload non è enorme. o semplicemente creare una classe che estende IntentSerivce. Da Android versione 4.0 tutte le operazioni di rete dovrebbero essere in background, altrimenti la compilazione / compilazione dell'applicazione fallisce. thread separato dall'interfaccia utente. La classe AsyncTask fornisce uno dei modi più semplici per avviare una nuova attività dal thread dell'interfaccia utente. Per ulteriori discussioni su questo argomento, vedere il post sul blog
dalla guida per sviluppatori Android :
IntentService è una classe di base per i Servizi che gestiscono richieste asincrone (espresse come Intenti) su richiesta. I client inviano richieste tramite chiamate startService (Intent); il servizio viene avviato in base alle esigenze, gestisce ciascun Intento, a sua volta, utilizzando un thread di lavoro e si interrompe quando si esaurisce il lavoro.
Modello di progettazione utilizzato in IntentService
: Questo modello di "processore della coda di lavoro" viene comunemente utilizzato per scaricare attività dal thread principale di un'applicazione. La classe IntentService esiste per semplificare questo modello e prendersi cura della meccanica. Per usarlo, estendi IntentService e implementa onHandleIntent (Intent). IntentService riceverà gli Intenti, avvierà un thread di lavoro e interromperà il servizio nel modo appropriato.
Tutte le richieste vengono gestite su un singolo thread di lavoro: possono richiedere il tempo necessario (e non bloccheranno il ciclo principale dell'applicazione), ma verrà elaborata solo una richiesta alla volta.
La classe IntentService fornisce una struttura semplice per l'esecuzione di un'operazione su un singolo thread in background. Ciò consente di gestire operazioni di lunga durata senza influire sulla reattività dell'interfaccia utente. Inoltre, IntentService non è interessato dalla maggior parte degli eventi del ciclo di vita dell'interfaccia utente, quindi continua a funzionare in circostanze che potrebbero arrestare un AsyncTask.
Un IntentService presenta alcune limitazioni:
Non può interagire direttamente con la tua interfaccia utente. Per inserire i suoi risultati nell'interfaccia utente, devi inviarli a un'attività. Le richieste di lavoro vengono eseguite in sequenza. Se un'operazione è in esecuzione in un IntentService e si invia un'altra richiesta, la richiesta attende fino al termine della prima operazione. Un'operazione in esecuzione su un IntentService non può essere interrotta. Tuttavia, nella maggior parte dei casi
IntentService è il modo preferito per semplici operazioni in background
**
Biblioteca Volley
C'è la libreria chiamata volley-library per lo sviluppo di applicazioni di networking Android
Il codice sorgente è disponibile per il pubblico in GitHub.
La documentazione ufficiale Android per le migliori pratiche per i lavori in background : aiuta a comprendere meglio il servizio di intenti, il thread, il gestore, il servizio. e anche eseguire operazioni di rete
IntentService is used for short tasks (etc) and a service is for long ones
dove l'hai letto?