Ich habe AsyncTask und die DoInBackground-Methode innerhalb der, ich sendende POST-Anfrage mit Retrofit. Mein Code sieht so aus:Retrofit: Wie auf die Antwort warten
//method of AsyncTask
protected Boolean doInBackground(Void... params) {
Retrofit restAdapter = new Retrofit.Builder()
.baseUrl(Constants.ROOT_API_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
IConstructSecureAPI service = restAdapter.create(IConstructSecureAPI.class);
//request
Call<JsonElement> result = service.getToken("TestUser", "pass", "password");
result.enqueue(new Callback<JsonElement>() {
@Override
public void onResponse(Call<JsonElement> call, Response<JsonElement> response) {
}
@Override
public void onFailure(Call<JsonElement> call, Throwable t) {
}
});
return true;
}
Mein Problem ist folgendes: Retrofit Anfrage asynchron Senden und während sie es tun, die doInBackground Methode Wert zurückkehrt. Also muss ich im selben Thread eine Anfrage senden, dass alle Ausführungen in der Reihenfolge sind. Einer nach dem anderen. Die Rückkehr von doInBackground erfolgt, nachdem die Anfrage beendet wurde. Wie kann ich eine Anfrage im selben Thread mit Retrofit senden?
ja aber wie execute() ist synchron, es scheint auf dem Hauptthread ausgeführt werden. In diesem Fall ist execute() die richtige Antwort, da das Poster bereits an einem Hintergrund-Thread arbeitet und execute() in diesem Thread sein wird. –