2011-04-05 9 views
8

Httpclient için bir dersim var. Aynı örnek uygulama boyunca kullanılır. Yani eğer client == null eğer bir tane yaratmalıysa, o var olan örneği döndürecektir. Çıkışta kaynağı serbest bırakmaya çalışana kadar her şey çalışıyor: client.getConnectionManager(). Shutdown(); .... bundan sonra tekrar giriş yapamıyorum. Sysem hatası veriyor: bağlantı havuzu kapatılıyor. İşte sınıfı: Bundan sonrabağlantı havuzu kapatma 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; 
} 
} 

i sadece client.getConnectionManager çalıştırmak() kapatma (.); Biri bana

cevap

5

Ok..i var geri null ve bağlantı kapatma aynı küresel sınıfta yapılması için varsayalım ayarlama değildi ... çözüm ...

3
lütfen yardım edebilir,) (onBackPressed

Ben benzer bir sorun karşı karşıya ancak sorunun giderilmiş değil

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

belirledik.

Son olarak, ben yılında doInBackgroundiçine taşıdıktan sonra, o inşaat yüzden yanlıştır OnPostExecute yakın tüm bağlantıları yaptık, öğrendim.

Bu birinin işe yaramasını umarız!

+0

client.getConnectionManager() = null gereklidir? Ödevin sol tarafı bir değişken olmalıdır. – juejiang