2011-04-05 12 views
8

Tengo una clase para Httpclient. La misma instancia se usa en toda la aplicación. Entonces, si el cliente == null debería crear uno más, devolverá la instancia existente. Todo funciona hasta que intento liberar el recurso en la salida haciendo: client.getConnectionManager(). Shutdown(); .... después de esto, no puedo volver a iniciar sesión. Da un error de Sysem que dice: cierre del grupo de conexiones. Aquí está la clase:desconexión del grupo de conexiones android

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; 
} 
} 

Después de esto sólo tiene que ejecutar client.getConnectionManager() apagado();. onBackPressed(), puede alguien por favor me ayude

Respuesta

5

Ok..i tiene la solución ... No estaba poniendo de nuevo en null y se supone que debe ser hecho en la misma clase mundial apagado conexión ...

3

me he enfrentado problema similar, pero establecer

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

no pudo resolver el problema.

Finalmente, descubrí que, hice cierre todas las conexiones en onPostExecute, lo cual es incorrecto, así que después de ponerlos en doInBackground, funciona.

Espero que esto ayude a alguien!

+0

por qué es necesario client.getConnectionManager() = null? El lado izquierdo de una tarea debe ser una variable – juejiang

Cuestiones relacionadas