2011-03-31 10 views
7

Uso un IntentService para manejar grandes descargas de archivos en mi aplicación. Pero cuando quiero cancelar la descarga, llamo al stopService(intent). Sin embargo, se ha llamado al método onDestroy() pero la descarga no se detiene. ¿Qué más tengo que hacer para cancelar la descarga? Gracias.Cómo detener un IntentService?

+1

debe trabajar con instancias singleton y buscar un mensaje de controlador para detener la descarga. – papachan

+2

¿podría darme un poco más? realmente no sé qué debería hacer con esto. – notme

Respuesta

8

no he dado cuenta de esto, pero me envíe un Intent con:

intent.putExtra("pause", "yes"); 
startService(intent); 

Y entonces anular public int onStartCommand(Intent intent, int a, int b) dentro del IntentService (que no se recomienda) y al ver que "pausa" es "sí" Establecí un booleano estático mPaused en true. Si tiene un bucle en onHandleIntent, agregue && !mPaused en la condición de bucle.

Por supuesto, esto es todo código "malo" y un truco ... pero espero que alguien más responda con la forma correcta de hacerlo.

+0

No es un código malo, creo. Esta es una forma adecuada de pausar un servicio. –