我执行了一个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
.
这是一个好方法吗?或者AsyncTask
中是否有更适合这一目的的东西?