Im Moment habe ich Arbeitscode für meine Android-Anwendung. Ich benutze Volley, aber wegen Callbacks habe ich nicht das Gefühl, dass mein Code so sauber ist wie er sein könnte.Wie man Volley in der Android-Programmierung verwendet und Code sauber hält? (Callback-Probleme)
Zwei Funktionen meines Codes sind jetzt:
private void updateSettings() {
...
HTTP.requestObject(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
shiftStart = getHour(response.getString("shift_start"));
shiftEnd = getHour(response.getString("shift_end"));
} catch (JSONException e) {
Log.i(MainActivity.TAG, "JSON parse error: " + e.toString());
e.printStackTrace();
}
startCall();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
HTTP.handleError(error, getApplicationContext());
startCall();
}
}, getApplicationContext());
...
}
private void startCall() {
...
CallActivity.makeCall(getApplicationContext());
...
}
Der Punkt hier ist, dass ich ein „Anruf“ machen wollen, was nicht sehr wichtig ist, aber vorher muss ich meine Einstellungen aktualisieren vom Server. Natürlich muss ich den Anruf tätigen, nachdem die Einstellungen aktualisiert wurden, also starte ich den Call aus dem Volley Callback (ich benutze HTTP.requestObject, eine benutzerdefinierte Klasse, die ich gemacht habe, aber es fügt die Anfrage nur der Anfrage hinzu Warteschlange und setzt ein Timeout). Das Problem ist, dass wenn Sie die Funktion updateSettings() aufrufen, Sie nicht wirklich erwarten, einen "Anruf" oder ähnliches zu starten. Wie kann dies vermieden werden?
P.S. Ich bin mir nicht sicher, ob ich das Thema klar erläutere. Bitte fragen Sie unten, wenn Sie mich klären müssen.