En un módulo de código no te funcionará, lo mejor es siempre que se pueda hacerlo en un servicio, veamos por que:
1º Si lo haces en el main (por ejemplo) que pasa si el usuario sale/cambia de pantalla de la aplicación antes de que se ejecute el jobdone?
2º Ejecutándolo en un servicio, no importa si lo que te vas a descargar ocupa/tarda mucho o poco, el usuario podrá seguir trabajando con tu aplicación.
3º Ejecutándolo en un servicio, puedes comenzar la descarga en segundo plano o dejar el servicio funcionando siempre y compruebe cada cierto tiempo si hay nuevas descargas/actualizaciones, lo mas recomendable en este caso y si tienes control sobre el servidor, es que envíes un mensaje push a la aplicación avisándote de que hay cambios y así no tienes que andar comprobando cada cierto tiempo si hay o no cambios en los archivos que quieres descargar, con el consiguiente ahorro de batería y datos.
Seguro que hay otros muchos casos, pero espero haberte convencido con los expuestos.