Android Volley Bibliothek: Müssen wir immer Response.Listener und Response.ErrorListener wiederholen

Ich habe vor kurzem begonnen, Android Volley in meinem Projekt zu verwenden. Die in den meisten Tutorials erwähnte übliche Vorgehensweise lautet:

JsonObjectRequest jsonObjReq = new JsonObjectRequest(Method.GET,
            url, null,
            new Response.Listener<JSONObject>() {

                @Override
                public void onResponse(JSONObject response) {
                    // do something
                }
            }, new Response.ErrorListener() {

                @Override
                public void onErrorResponse(VolleyError error) {
                    // do something.
                }
            });

Meine Abfrage lautet: Müssen wir diesen Code überall wiederholen, wo wir eine Anfrage stellen müssen? Ich habe versucht, einen gemeinsamen onResponse- und onErrorResponse-Handler einzurichten, indem ich eine Hilfsklasse erstellt habe:

public class CustomJSONObjectRequest extends JsonObjectRequest {
    private BaseResource resource;
    private String queryId;
    private String paramArgs;

    public CustomJSONObjectRequest(int method, String url, JSONObject 
                               jsonRequest, 
                               Response.Listener<JSONObject> listener,
                               final Response.ErrorListener errorListener, 
                               final Context ctx,
                               final BaseResource baseResource) {
    super(method, url, jsonRequest,
            new Response.Listener<JSONObject>() {
                 // some common code for all BaseResources
            },
            new Response.ErrorListener() {
                // some common code
            });
}

Aber das Problem bei diesem Ansatz ist, dass ich alles im Konstruktor selbst übergeben muss, was mir das Gefühl gibt, dass ich es nicht richtig mache. Wenn ich zum Beispiel einige Abfrageparameter für die URL übergeben muss, muss ich immer die vollständige URL des Aufrufers übergeben, obwohl ich immer noch eine gemeinsame Logik haben kann, um die URL an einer Stelle zu generieren.

Kann mir jemand bitte mitteilen, was der beste Weg ist, um so etwas zu erreichen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage