2016-06-21 6 views
0

Ich muss verstehen, wie ich Nachrüstung zwischen mehreren Modulen in einer Android-Anwendung verwalten kann, wo jedes Modul mit verschiedenen Servern sprechen. Mein Fokus hier ist, dass alle Module vom Cache profitieren sollten, aber jedes Modul kann eine andere Konfiguration haben (zB Header und base_url).
Beispiel:
Ich habe 3 Untermodule in einem Android-Projekt. submodule1 hängt von submodule2 submodle3 auf submodule2Wie man die Nachrüstung zwischen mehreren Android-Modulen verwaltet

submodule1 spricht mit server1 submodule2 spricht mit server2 submodule3 spricht mit server3

abhängt, ist es in Ordnung, einzelne Instanz Nachrüstung zu haben und die Konfiguration bei Bedarf zu ändern oder gibt es eine andere Lösung?

+0

Der Aufbau einer Retrofit-Instanz ist eine kostspielige Operation. Vielleicht ist es besser, 3 verschiedene Onces zu haben –

+0

Haben Sie Dolch für die Injektion von Abhängigkeiten verwendet? – once2go

Antwort

0

In meinem Fall verwende ich verschiedene Retrofit-Instanz und Anschlüsse für verschiedene Module:

public static NetworkConnector getRetrofit1() { 
    if (ZivaURLs.retrofitNetworkHandler1 == null) { 
     GsonBuilder gsonBuilder = new GsonBuilder(); 
     gsonBuilder.registerTypeAdapter(Date.class, new GsonDateDeSerializer()); 
     Retrofit retrofit = new Retrofit.Builder() 
       .baseUrl(ZivaURLs.HOST_1) 
       .addConverterFactory(GsonConverterFactory.create(gsonBuilder.create())) 
       .build(); 
     retrofit.client().setReadTimeout(40, TimeUnit.SECONDS); 
     retrofit.client().setWriteTimeout(40, TimeUnit.SECONDS); 
     retrofit.client().setConnectTimeout(40, TimeUnit.SECONDS); 
     ZivaURLs.retrofitNetworkHandler1 = retrofit.create(NetworkConnector1.class); 
    } 
    return ZivaURLs.retrofitNetworkHandler1; 
} 

Jetzt habe ich für jedes Modul verschiedene Stecker-Schnittstelle verwenden nur zu meinem Code sauberen und einfach zu ändern/Upgrade zu machen.

Ich hoffe, es wird Ihnen helfen :)

+0

Danke für die schnelle Hilfe. Ich bestätige dies und markiere deine Antwort entsprechend. –

+0

Hallo @pavankumar, freundlicherweise akzeptieren die beste Antwort :) – Neo