J'ai un AsyncTask
que j'exécute et qui télécharge une grande liste de données à partir d'un site web.
Dans le cas où l'utilisateur final dispose d'une connexion de données très lente ou irrégulière au moment de l'utilisation, j'aimerais faire en sorte que l'utilisateur final ait la possibilité d'accéder aux données. AsyncTask
le délai d'attente après un certain temps. Ma première approche est la suivante :
MyDownloader downloader = new MyDownloader();
downloader.execute();
Handler handler = new Handler();
handler.postDelayed(new Runnable()
{
@Override
public void run() {
if ( downloader.getStatus() == AsyncTask.Status.RUNNING )
downloader.cancel(true);
}
}, 30000 );
Après le démarrage de l AsyncTask
un nouveau gestionnaire est lancé qui annulera l'action de la AsyncTask
après 30 secondes s'il est toujours en marche.
Est-ce une bonne approche ? Ou y a-t-il quelque chose d'intégré dans AsyncTask
qui est mieux adapté à cet objectif ?