J'ai une AsyncTask
classe que j'exécute qui télécharge une grande liste de données à partir d'un site Web.
Dans le cas où l'utilisateur final a une connexion de données très lente ou irrégulière au moment de l'utilisation, j'aimerais que le AsyncTask
délai d'attente soit écoulé 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 avoir démarré le AsyncTask
, un nouveau gestionnaire est démarré qui annulera les AsyncTask
30 secondes après s'il est toujours en cours d'exécution.
Est-ce une bonne approche? Ou y a-t-il quelque chose de AsyncTask
mieux adapté à cette fin?