【发布时间】:2011-12-14 12:39:37
【问题描述】:
我执行了一个 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 中是否有更适合此目的的内容?
【问题讨论】:
-
在尝试了几种不同的方法后,我得出结论认为您的问题应该是公认的答案。
-
感谢您提出的问题,我真的遇到了同样的问题,您的代码帮助了我 +1
-
你的问题本身就是一个很好的答案+50 :)
-
这个处理程序是连续运行还是一次运行?
标签: java android android-asynctask