我正在从我的活动中调用另一个类的方法,该活动使用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
希望有帮助。

10-08 07:07