2016-04-20 16 views
1

In einer Android-App, was ist der beste Weg zu teilen Sie eine http-Client-Instanz?Die beste Möglichkeit zum Teilen von httpClient-Instanzen zwischen Aktivitäten?

Ich weiß, ich soll wahrscheinlich nur die Session-Daten gemeinsam nutzen und eine HTTP-Client-Instanz für jede Aktivität erstellen, aber ohne dass Ansatz wie kann ich ohne global mein Ziel erreichen in einen der Aktivitäten, eine Instanz geschaffen zu teilen (wie here)?

Wie kann ich Objekte teilen mit getContext() in jeder Aktivität?

Dank

+1

erstellen Singletonklasse erhalten, die Referenz von Httpclient hält. – Avi

+0

Und wie teile ich es dann zwischen Aktivitäten? Danke –

+0

Bitte schauen Sie sich die Lösung an, wenn Sie ein anderes Szenario haben, dann definieren Sie hier. Danke – Avi

Antwort

1

Sie können eine Singleton-Klasse mit initializer Methode erstellen und dass, nachdem alle Aktivitäten können HTTP-Client von

ApiManager.getInstance().getClient(); 



    public static class ApiManager { 
     private static ApiManager sInstance; 
     private HttppClient mClient; 
     private ApiManager(Context pContext){ 
      mClient = new HttpClient(pContext); 
     } 

     public static void initializer(Context pContext){ 
      if(sInstance == null){ 
       synchronized (ApiManager.class){ 
        sInstance = new ApiManager(pContext); 
       } 
      } 
     } 

     public static ApiManager getInstance(){ 
      if(sInstance == null){ 
       throw new IllegalStateException("Get Instance can't be called before initializer"); 
      } 
      return sInstance; 
     } 

     public HttppClient getClient() { 
      return mClient; 
     } 
    } 
Verwandte Themen