【问题标题】:connection pool shutdown android连接池关闭android
【发布时间】:2011-04-05 21:26:53
【问题描述】:

我有一个 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(),有人可以帮帮我吗

【问题讨论】:

    标签: android httpclient


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      我也遇到过类似的问题,但是设置

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

      无法解决问题。

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

      希望这对某人有所帮助!

      【讨论】:

      • 为什么需要client.getConnectionManager() = null?赋值的左边必须是变量
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-23
      • 2018-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-04
      相关资源
      最近更新 更多