У мене 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
що краще підходить для цієї мети?