Sono uno sviluppatore iOS che inizia ad imparare Android. In Swift, creare un gestore di completamento è molto semplice, ma non riesco ancora a trovare un modo per farlo in Java.Creare un comando di completamento/richiamata personalizzato per restituire gli oggetti dopo aver completato una richiesta HTTP
Mi dispiace se questa domanda è troppo noob per le persone di StackOverflow.
Problema
sto creando una classe per gestire tutta la mia richiesta HTTP che viene fatto usando retrofit.
Faccio questa funzione è il mio RequestHelper.java
public static void checkEmailAvailability(String email) {
MyWebServiceAPI serviceAPI = retrofit.create(MyWebServiceAPI.class);
Call<APIResults> call = serviceAPI.checkEmailAvailability(getAuthenticationHeader(), RequestBody.create(MediaType.parse("text/plain"), email));
call.enqueue(new Callback<APIResults>() {
@Override
public void onResponse(retrofit.Response<APIResults> response, Retrofit retrofit) {
//Parse Response Json
//Get some value and place it inside an object
//ANDI WOULD LIKE RETURN SOME BOOLEAN VALUE AND SOME OTHER STRING
}
@Override
public void onFailure(Throwable t) {
//I WOULD LIKE A BOOLEAN VALUE HERE
}
});
}
Io lo chiamo come questo dal mio MainActivity
RequestHelper.checkEmailAvailability("[email protected]");
Ora la funzione è ancora vuoto, ma mi piacerebbe per poter restituire qualcosa dopo la sul metodo onResponse
e onFailure
.
Qualche idea per favore?
Mi piacerebbe avere un callback diverso (personalizzato). Perché analizzerò la risposta e restituirò il valore in un callback. – JayVDiyk
@JayVDiyk Si può fare qualcosa come: public void checkEmailAvailability (String email, callback finale listener) e onResponse if (listener! = Null) { listener.success (retrofit, response); } onFailure if (listener! = Null) { listener.failure (t); –
JoCuTo
@JeCuRo Grazie per aver risposto. Diciamo. Voglio restituire un valore booleano nel callback. Come potrei fare per farlo? – JayVDiyk