我有一个我执行的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
中的东西更适合这个目的?
https://stackoverflow.com/questions/7882739
复制相似问题