2014-07-03 21 views
1

我在异步任务的Android是新的Android的AsyncTask如何设置定时器

我真的有一个简单的问题..请告诉我在哪里找,如果这个问题之前已经

有人问我使用的AsyncTask

我doInBackground在此的AsyncTask用于POST请求我自己的服务器

但有时,当我的服务器是,也许是因为电力或其他问题了,

此的AsyncTask将加载永远

和同时的AsyncTask仍然在运行,我打开我的电脑,而服务器又到了,但异步任务仍在运行和加载永远,直到我关闭程序,并运行在后面

我不希望我的用户体验它

我想,我想是

使得异步任务运行doInBackground像20秒,经过20 SE cond,如果仍然没有结果,那么我会做点什么

我该怎么做?

我应该为此20秒做另一个线程? 还是有可以设置的AsyncTask任何计时器..

由于之前..

回答

4

您应该添加一个超时的网络操作。这样,如果超时超时,它将引发异常。

例如,如果使用DefaultHttpClient,这将是这样的:

HttpParams httpParameters = client.getParams(); 
HttpConnectionParams.setConnectionTimeout(httpParameters, CONNECTION_TIMEOUT); 
HttpConnectionParams.setSoTimeout(httpParameters, SOCKET_TIMEOUT); 

如果它是一个HttpUrlConnection而是使用:

connection.setConnectTimeout(CONNECTION_TIMEOUT); 
connection.setReadTimeout(SOCKET_TIMEOUT); 

其中CONNECTION_TIMEOUTSOCKET_TIMEOUT以毫秒为单位。

相关问题