0

私のアプリケーションは、利用可能な場合、バックグラウンドでデータをダウンロードします。そのために AsyncTask を使用していますが、Web サービスに到達できない場合、または Web サービスの応答に時間がかかりすぎる場合、アプリケーションの動作が非常に遅くなるか、まったく動作しなくなります。AsyncTask でオンラインにするために、次のコードを使用しています。

 /* Open connection. */
 URL url = new URL(webserviceLink);
 HttpURLConnection connection = (HttpURLConnection) url.openConnection();
 connection.setRequestMethod("GET");

 /* Create input stream. */
 inputStream = connection.getInputStream();

 while ((bytesRead = inputStream.read(buffer, 0, bufferSize)) > 0) {
       fileOutputStream.write(buffer, 0, bytesRead);
       counter += bytesRead;
 }
4

1 に答える 1

1

http://developer.android.com/reference/java/net/URLConnection.html#setConnectTimeout(int ) public void setConnectTimeout (int timeoutMillis)

次のように小さな接続タイムアウトを設定します。connection.setConnectTimeout(5*1000);

EDIT:また、おそらくこの方法で読み取りタイムアウトを設定したいと思うでしょう:

public void setReadTimeout (int timeoutMillis)

于 2012-11-14T12:58:59.197 に答える