我正在从我的活动中调用另一个类的方法,该活动使用ksoap2调用webservice。我想处理这个超时。如果该方法的执行时间超过10秒,则需要显示一个警报对话框,指示进程未成功。
我尝试使用超时值,如下所示:
HttpsTransportSE transport = new HttpsTransportSE(URL,TIMEOUT);
但ksoap2出于某种原因忽略了超时。我在用ksoap2 2.6.5。
有没有什么方法可以让我在android中执行该方法10秒,然后显示指示成功或失败的适当对话框?
最佳答案
在某些情况下,httptransportse忽略超时值似乎仍然存在一个公开问题。
请参阅相关的link。
然而,一个解决方案,涉及修改现有的ksoap2 API
。
感谢Lightsoftai的开发人员,您现在可以使用以下代码向HttpTransportSE
添加超时:
注意:您可以使用ksoap2 api版本2.5.2或更高版本
/**
* Creates instance of HttpTransportSE with set url
*
* @param url
* the destination to POST SOAP data
*/
public HttpTransportSE(String url) {
super(url);
}
/**
* Creates instance of HttpTransportSE with set url
*
* @param url
* the destination to POST SOAP data
* @param timeout
* timeout for connection and Read Timeouts (milliseconds)
*/
public HttpTransportSE(String url, int timeout) {
super(url, timeout);
}
您可以从here下载jar文件。
另请参阅ksoap never timeout。
希望有帮助。