我有一个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(),有人可以帮帮我
答案 0 :(得分:5)
Ok ..我得到了解决方案......我没有将它设置回null并且连接关闭假设在同一个全局类中完成...
答案 1 :(得分:3)
我遇到了类似的问题,但设置了
client.getConnectionManager().shutdown()
client.getConnectionManager() = null
无法解决问题。
最后,我发现,我确实关闭了 onPostExecute 中的所有连接,这是不正确的,所以在将它们移动到 doInBackground 之后,它就可以了。
希望这有助于某人!