Android - Установка тайм-аута для AsyncTask?

У меня есть класс AsyncTask , который я выполняю, который загружает большой список данных с сайта.

В случае, если у конечного пользователя очень медленное или нестабильное соединение для передачи данных во время использования, я хотел бы сделать тайм-аут AsyncTask по истечении определенного периода времени. Мой первый подход к этому такой:

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

После запуска AsyncTask запускается новый обработчик, который отменяет AsyncTask через 30 секунд, если он все еще выполняется.

Это хороший подход? Или есть что-то встроенное в AsyncTask , которое лучше подходит для этой цели?

122
задан user1732313 11 March 2013 в 10:36
поделиться