Als iOS-Entwickler, der mit Android zu arbeiten begann, stieß ich auf Retrofit. Ich verstehe, wie synchrone Anforderungen zu implementieren, aber Probleme beim Implementieren von asynchronen Anforderungen mit Erfolgs-/Fehlerrückrufen haben. Insbesondere ist die Callback-Syntax für mich unklar, und es gibt keine konkreten Beispiele dafür, wie man dies auf dem Retrofit website, dem Square blogpost Einführung Retrofit, oder an anderer Stelle, die ich gesehen habe. Kann jemand bitte einen Beispielcode hier posten? Ich habe im Retrofit-Repo ein Problem angemeldet und darum gebeten, die README mit diesen Informationen zu aktualisieren.So implementieren Sie einen Async-Callback mit der Retrofit-Netzwerkbibliothek von Square
28
A
Antwort
54
Nach etwas mehr Forschung und nur einfach mehr Zeit in der Android/Java-Welt verbrachte ich das mit dem Beispiel aus ihren Dokumenten.
Schnittstelle:
@GET("/user/{id}/photo")
void listUsers(@Path("id") int id, Callback<Photo> cb);
Umsetzung:
RestAdapter restAdapter = new RestAdapter.Builder()
.setServer("baseURL")
.build();
ClientInterface service = restAdapter.create(ClientInterface.class);
Callback callback = new Callback() {
@Override
public void success(Object o, Response response) {
}
@Override
public void failure(RetrofitError retrofitError) {
}
};
service.listUsers(666, callback);
Verwandte Themen
- 1. So implementieren Sie einen Grapher in C#
- 2. So implementieren Sie einen Einheitenumrechner in Java
- 3. SerializationProblem (?) Von benutzerdefinierten AsyncCallback
- 4. So implementieren Sie einen Aktionsfilter in NopCommerce
- 5. So implementieren Sie einen nicht binären Baum
- 6. So implementieren Sie einen selbstbalancierenden Roboter
- 7. So implementieren Sie einen generischen Parameter, der nicht generisch ist
- 8. AsyncCallback für einen Thread auf kompaktem Framework
- 9. So implementieren Sie einen OnMenuItemClickListener in Android
- 10. Implementieren Klassen Square und Dreieck als Unterklassen der Klasse Polygon
- 11. So implementieren Sie einen Aktualisierungstokenprozess mit JWT für Android-Apps
- 12. So implementieren Sie einen benutzerdefinierten Cache-Provider mit ASP.NET MVC
- 13. So implementieren Sie einen Farbwähler anstelle von statischen Farben
- 14. So implementieren Sie IAsyncOperationWithProgress
- 15. So implementieren Sie verknüpfte Liste mit Stack
- 16. So implementieren Sie einen Kurzschluss mit IO-Monade in Scala
- 17. So implementieren Sie einen WebSocket mit Retrofit + RX
- 18. Wie erstelle ich einen Auftrag mit der Square Connect API?
- 19. Fit einen Kreis von Least Square Methode
- 20. AsyncCallback completedSynchronously
- 21. So implementieren Sie HTTP-Tunneling
- 22. So implementieren Sie einzeilige Ellipsen mit CSS
- 23. So implementieren Sie Swipe mit UIGestureRecognizer-Unterklasse
- 24. So implementieren Sie jtable mit variabler Zeilenhöhe
- 25. So implementieren Sie SAML SSO
- 26. So implementieren Sie Standard-Funktionen mit SuiteScript
- 27. So implementieren Sie MiniDrawer mit mikepenz/MaterialDrawer
- 28. So implementieren Sie Benutzerprofil mit Token-Auth
- 29. So erstellen und implementieren Sie einen Krieg in Intellij
- 30. So implementieren Sie Gutschein-Zahlung mit Paypal
Vergessen Sie nicht setExecutors() aufrufen, wenn Ihr restAdapter zu schaffen. – SeanPONeil
@SeanPONeil Sie müssen nur Executers() setzen, wenn der Callback auch außerhalb des Hauptthreads stattfinden soll. – gkee
Nicht zu der Zeit, als ich das gepostet habe. Square fügte den Executoren Standardeinstellungen hinzu. – SeanPONeil