Dalla risposta di @keke Wharton, è necessario chiamare sempre restAdapter.create una sola volta e riutilizzare la stessa istanza di MyTaskService ogni volta che è necessario interagire con. Non posso sottolineare abbastanza questo. È possibile utilizzare il modello di singleton regolare per garantire che ci sia sempre una singola istanza di questi oggetti che si utilizza ovunque. Un framework di iniezione delle dipendenze sarebbe anche qualcosa che potrebbe essere usato per gestire queste istanze, ma sarebbe un po 'eccessivo se non lo si sta già utilizzando.Come utilizzare il retrofit come un singleton mentre si utilizza il convertitore gson?
questo è il mio codice
public class MusicApi {
private static final String API_URL = "https://itunes.apple.com";
private static MusicApiInterface sMusicApiInterface;
public static MusicApiInterface getApi() {
if (sMusicApiInterface == null) {
sMusicApiInterface = null;
RestAdapter restAdapter = new RestAdapter.Builder()
.setEndpoint(API_URL)
.build();
sMusicApiInterface = restAdapter.create(MusicApiInterface.class);
}
return sMusicApiInterface;
}
public interface MusicApiInterface {
@GET("/search?entity=musicVideo")
NetworkResponse getMusic(@Query("term") String term);
@GET("/search?entity=musicVideo")
void getMusic(@Query("term") String term, Callback<NetworkResponse> networkResponseCallback);
@GET("/search?entity=musicVideo")
Observable<NetworkResponse> getMusicObservable(@Query("term") String term);
}
}
tutto funziona bene. Sto usando un adattatore di tipo, per ogni richiesta ho bisogno di creare diversi tipi di analisi di gson e impostazione in adattatore.
Gson gson = new GsonBuilder().registerTypeAdapter(DiscussionViewMoreContainer.class, new ExplorerDeserializerJson())
.create();
mi fa che devo creare un nuovo restadapter ogni volta. Nella mia app alcune richieste sono parallele. Questo è il modo corretto?
* mi fa che devo creare un nuovo restadapter ogni volta. * Perché? – Blackbelt
@Blackbelt dopo aver effettuato l'adattatore di riposo come singleton.how imposterai il convertitore gson in restadpater. Creerai un nuovo generatore di riposo e lo imposterai? – Asthme