studio implement hilos example curso create asynctask android android-asynctask worker

android - implement - iniciar la tarea asincrónica desde onhandleintent



hilos asynctask android (3)

¿Deberíamos comenzar una tarea asincrónica desde el método onHandleIntent() de IntentService ? Leí que onHandleIntent() ejecuta en el worker thread así que ¿será seguro iniciar asyncTask desde allí?


La clase AsyncTask se usa para proporcionar un mecanismo para lograr subprocesamiento múltiple, por lo que el hilo del evento no se colgará, pero como está utilizando el servicio, no debe usar AsyncTask en el Servicio, sino que puede usar subprocesos si es una tarea larga. se ejecuta, en el Servicio.


Si realmente necesita utilizar un AsyncTask dentro de un servicio de intendencia, puede crear un método en su AsyncTask que invoque de doInBackGround y onPostExecute. Algo como esto:

void executeFlowOnBackground(Params params) { onPostExecute(doInBackground(params)); }

En mi caso, hice esto porque todas las solicitudes de aplicaciones fueron hechas por una clase que extendió AsyncTask, y debido a la implementación fue difícil refactorizar el código.


IntentService s ya son procesos en segundo plano; no hay necesidad de iniciar una AsyncTask desde allí. Además, iniciar una AsyncTask es ''seguro'' desde cualquier lugar; es una clase de ayuda que te ayuda a multiples lecturas. Solo asegúrate de no manipular View en el método doInBackground() de tu AsyncTask si lo usas en tu Actividad.

Si necesita generar múltiples hilos dentro de su IntentService, simplemente use:

nuevo Thread (Runnable r) .start ();

Ver un ejemplo en Cómo ejecutar un hilo ejecutable en Android?

Si necesita llamar a algún tipo de devolución de llamada, use Handler . Para ver un ejemplo, consulte http://www.vogella.com/articles/AndroidPerformance/article.html#handler