У меня есть 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
что лучше подходит для этой цели?