连接池关机android

时间:2011-04-05 21:26:53

标签: android httpclient

我有一个Httpclient类。整个应用程序使用相同的实例。因此,如果客户端== null,它应该创建一个else,它将返回现有实例。一切正常,直到我尝试通过执行以下操作释放资源:client.getConnectionManager()。shutdown(); ....之后我无法再次登录。它给Sysem错误说:连接池关闭。继承班级:

public class HttpClientFactory {
    private static DefaultHttpClient client;        
    public synchronized static DefaultHttpClient getThreadSafeClient() {
    if (client != null)
        return client;

    client = new DefaultHttpClient();
    SchemeRegistry schemeRegistry = new SchemeRegistry(); 
    schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
    schemeRegistry.register(new Scheme("https", SSLSocketFactory.getSocketFactory(), 443));  
    HttpParams params = new BasicHttpParams();  
    SingleClientConnManager mgr = new SingleClientConnManager(params, schemeRegistry);  
    client = new DefaultHttpClient(mgr, params);

    return client;
}
}

在此之后我只需运行client.getConnectionManager()。shutdown(); onBackPressed(),有人可以帮帮我

2 个答案:

答案 0 :(得分:5)

Ok ..我得到了解决方案......我没有将它设置回null并且连接关闭假设在同一个全局类中完成...

答案 1 :(得分:3)

我遇到了类似的问题,但设置了

client.getConnectionManager().shutdown()
client.getConnectionManager() = null

无法解决问题。

最后,我发现,我确实关闭了 onPostExecute 中的所有连接,这是不正确的,所以在将它们移动到 doInBackground 之后,它就可以了。

希望这有助于某人!