¿Cómo hacer cambios en la IU de actividad desde una AsyncTask de Android?

En un escenario donde tengo una interfaz de usuario que se actualizará desde un hilo separado (usando AsyncTask), puedo definir AsyncTask como una clase interna de la actividad, pero esto tiene dos inconvenientes que encuentro problemático:

Hace que los archivos fuente sean muy grandes, lo que reduce la eficiencia en la administración del códigoHace que sea difícil reutilizar la clase de hilo

¿Qué es una buena solución? ¿Usa una clase interna, pero abstrae todo lo que hace a otras clases? ¿Pasar una referencia a la Actividad a AsyncTask? ¿Siempre define la clase AsyncTask como una clase interna y solo acepta que los archivos fuente serán grandes?

Respuestas a la pregunta(3)

Su respuesta a la pregunta