我有一个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
更适合此目的的东西?