Android - Definindo um tempo limite para uma AsyncTask?

Eu tenho umAsyncTasklasse que executo que baixa uma grande lista de dados de um sit

No caso de o usuário final ter uma conexão de dados muito lenta ou irregular no momento do uso, eu gostaria de fazer oAsyncTask timeout após um período de tempo. Minha primeira abordagem é a seguinte:

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 );

Depois de iniciar oAsyncTask, um novo manipulador é iniciado que cancelará oAsyncTask após 30 segundos, se ainda estiver em execuçã

Será esta uma boa abordagem? Ou há algo embutido noAsyncTask que é mais adequado para esse fim?

questionAnswers(7)

yourAnswerToTheQuestion