2016-04-05 2 views
0

Ich habe Retrofit benutzt, um jedes Mal, wenn ich einen Webservice nutze, neue Objekte zu erstellen. Die Reaktionszeit des Webservice ist gut. Aber wenn es in der App versucht wird, wird es langsamer.Verzögert die Erstellung eines neuen Objekts für Retrofit die Antwortzeit des Dienstes?

Beeinflusst dies die Antwort?

Retrofit retrofit = new Retrofit.Builder() 
      .baseUrl(ApiConstants.BASE_URL) 
      .addCallAdapterFactory(new ErrorCallback.ErrorHandlingCallAdapterFactory()) 
      .addConverterFactory(GsonConverterFactory.create()) 
      .build(); 
+1

Es wirkt sich auf Ihre Speichernutzung aus. Sie sollten die Retrofit-Instanz erneut verwenden. – EpicPandaForce

+0

ok danke. Aber würde dies die Webservice-Antwort beeinflussen? Wie mein TL mir sagte, erzeugt es jedes Mal, wenn eine neue Instanz erstellt wird, eine neue Verbindung, und es wird ein Handshake durchgeführt, der es verzögert. – Navdroid

Antwort

1

In der Retrofit Dokumentation der Build, baseUrl, addCallAdapterFactory, nicht addConverterFactory Operationen alle Verbindungen entablish. Dies ist sinnvoll, da sie nur zur Vorbereitung der Retrofit-Instanz für die Kommunikation verwendet werden.

Auch in Anbetracht der Tatsache, dass erholsame Dienste in der Regel HTTP für die Kommunikation verwenden, ist es nicht erforderlich, eine Verbindung pro Sitzung herzustellen. Die Verbindung wird jedes Mal hergestellt, wenn Sie eine Operation des Webservice api aufrufen.

So wird die Erstellung der Instanz nicht jedes Mal in Bezug auf die Kommunikation beeinflussen, aber es wird die Client-CPU und Speicherressourcen unnötig.

Verwandte Themen