0

実際、これは接続タイムアウトを設定するために私がしなければならないことです:

HttpGet httpPost = new HttpGet("www.xxxx.com/method");
HttpParams httpParameters = new BasicHttpParams();
// Set the timeout in milliseconds until a connection is established.
// The default value is zero, that means the timeout is not used. 
int timeoutConnection = 3000;
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
// Set the default socket timeout (SO_TIMEOUT) 
// in milliseconds which is the timeout for waiting for data.
int timeoutSocket = 5000;
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);

DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
HttpResponse response = httpClient.execute(httpGet);

しかし、私のアプリケーションでは、MainActivitiesでを作成し、他のすべてのアクティビティで使用しますhttpClientStatic fieldただセッションをするために。

したがって、すべてのアクティビティにこのコードを含める必要があります。

HttpParams httpParameters = new BasicHttpParams();
// Set the timeout in milliseconds until a connection is established.
// The default value is zero, that means the timeout is not used. 
int timeoutConnection = 3000;
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection);
// Set the default socket timeout (SO_TIMEOUT) 
// in milliseconds which is the timeout for waiting for data.
int timeoutSocket = 5000;
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket);

その後

MainActivity.httpClient.setParams(httpParameters);

paramsすべてのアクティビティでパラメータを設定するのではなく、でを設定しMainActivity、他のすべてのアクティビティでhttpClientを使用する方法を知りたいだけです。

ありがとうございました

4

2 に答える 2

3

メインアクティビティクラスの静的コードブロックを使用して、パラメータを設定します。

public class MainActivity extends Activity {

    static final DefaultHttpClient httpClient;

    static {    
        HttpParams httpParameters = new BasicHttpParams();
        HttpConnectionParams.setConnectionTimeout(httpParameters, 3000);
        HttpConnectionParams.setSoTimeout(httpParameters, 5000);
        httpClient = new DefaultHttpClient(httpParameters);
    }


   ...

}
于 2013-07-31T21:57:04.263 に答える
2

これを試して:

次のような変数を作成します。

    private static final long CONN_MGR_TIMEOUT = 10000;
    private static final int CONN_TIMEOUT = 50000;
    private static final int SO_TIMEOUT = 50000;

このコードをhttppostで使用します。

    ConnManagerParams.setTimeout(params, CONN_MGR_TIMEOUT);
    HttpConnectionParams.setConnectionTimeout(params, CONN_TIMEOUT);
    HttpConnectionParams.setSoTimeout(params, SO_TIMEOUT);
于 2012-09-28T06:24:17.510 に答える