Qu'en est-il d'un AsyncTask
avec une référence à un static retained Fragment (sans interface utilisateur) hébergé dans une activité ou un autre fragment ? Pas de fuites de mémoire, opérations asynchrones élégantes dans un thread séparé, pas de pertes de références d'objets.
Je pense que cela serait correct pour les requêtes http, mais pas pour les téléchargements de fichiers. Si vous lisez attentivement, il y a une phrase :
Si vous devez maintenir des threads en cours d'exécution pendant de longues périodes, il est fortement recommandé d'utiliser les diverses API fournies par le paquet java.util.concurrent telles que Executor, ThreadPoolExecutor et FutureTask.
Mais ils ne mentionnent pas, qu'un service avec un fil séparé pourrait aussi être une bonne option. Cela permet de continuer à exécuter les tâches en arrière-plan, quoi que fasse l'utilisateur. (par exemple, s'il télécharge un fichier, vous ne voulez pas l'arrêter parce qu'il a quitté l'activité).
Ce site link pour les échantillons - trouvez le RetainedFragment.java
Ce site link pour AsyncTask.