2017-05-03 1 views
0

Ich habe eine Java-API, die etwa 50 Sekunden dauert, um die Antwort zurückzugeben, und eine Verbesserung der API ist nicht möglich. Der Benutzer kann nicht auf der nächsten Seite fortfahren, bis die Antwort vollständig ist und es ist ein Blocker in der Android-App, die die API verwendet. Bitte schlagen Sie einen alternativen Ansatz vor.Wie kann man auf eine API mit hoher Antwortzeit in Android App zugreifen?

Zum Beispiel: Wir können zwei Tabellen haben und die API wird die Daten aus der Tabelle zurückgeben und stattdessen auf das Ergebnis der Abfrage warten, was mehr Zeit in Anspruch nimmt und wir können einen Thread generieren, um die Abfrage im Hintergrund auszuführen und die Tabellendaten zu aktualisieren mit dem Ergebnis. Basierend auf dem Zeitstempel in den Antwortdaten kann die Android-App wissen, ob die Daten alt oder aktuell sind, und im Falle von alten Daten können sie sie nach einiger Zeit erneut anfordern, um die neuesten Daten zu erhalten.

Bitte lassen Sie mich wissen, ob die Frage oder Ansatz ist nicht klar.

Antwort

0

Es gibt eine spezielle Möglichkeit, solche Dinge zu tun. Es gibt eine Sache namens Loader in android. CursorLoader wird für Inhaltsanbieter verwendet. und AsyncTaskLoader für api ruft

0

Versuchen Sie, diese

if (BuildConfig.DEBUG) { 
    HttpLoggingInterceptor httpLoggingInterceptor = new HttpLoggingInterceptor(); 
    httpLoggingInterceptor.setLevel(HttpLoggingInterceptor.Level.BODY); 
    httpClient.addInterceptor(httpLoggingInterceptor); 
} 

auch diese Abhängigkeiten in gradle App-Ebene hinzufügen

compile 'com.squareup.okhttp3:logging-interceptor:3.2.0' 

Smaple Antwort

Date: Fri, 12 Aug 2016 07:33:23 GMT 
OkHttp-Sent-Millis: 1470987074283 
OkHttp-Received-Millis: 1470987074422 
+0

und auch Ihre logcat in Android Studio überprüfen –

0

Sie können es im Hintergrund Dienst tun. Und benachrichtigen Sie UI-Thread, wenn Antwort durch Broadcast erhalten.

Verwandte Themen