2

ksoap2 を使用して Web サービスを呼び出すアクティビティから、別のクラスのメソッドを呼び出しています。これのタイムアウトを処理したい。メソッドの実行に 10 秒以上かかる場合は、プロセスが成功しなかったことを示す警告ダイアログを表示する必要があります。

次のようにタイムアウト値を使用してみました。

HttpsTransportSE transport = new HttpsTransportSE(URL,TIMEOUT);

しかし、何らかの理由で ksoap2 がタイムアウトを無視しています。ksoap2 2.6.5 を使用しています。

メソッドを 10 秒間実行してから、Android で成功または失敗を示す適切なダイアログ ボックスを表示する方法はありますか?

4

1 に答える 1

5

状況によっては、HttpTransportSE がタイムアウト値を無視する未解決の問題がまだあるようです。この関連リンクを参照してください。

ただし、これに対する解決策には、既存の の変更が含まれていました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);
          }

ここから同じ jar ファイルをダウンロードできます。

ksoap never timeoutも参照してください。

それが役に立てば幸い。

于 2012-07-09T05:40:16.553 に答える