Методы модификации могут быть объявлены для синхронного или асинхронного выполнения
call.execute();
- синхронный сетевой вызов, 0
Синхронные запросы объявляются путем определения типа возврата. Синхронные методы выполняются в основном потоке. Это означает, что пользовательский интерфейс блокируется во время выполнения запроса, и в этот период взаимодействие невозможно. Использование метода .execute () для объекта вызова будет выполнять синхронный запрос. Десериализованное тело ответа доступно через метод .body () объекта ответа.
call.enqueue()
- это асинхронный сетевой вызов, асинхронные запросы не имеют типа возврата. Вместо этого определенный метод требует типизированного обратного вызова в качестве последнего параметра метода. Использование асинхронных запросов вынуждает вас реализовать Обратный вызов с двумя его методами обратного вызова: успех и сбой. При вызове асинхронного метода getTasks () из класса обслуживания вы должны реализовать новый Callback и определить, что должно быть сделано после завершения запроса.
как показано ниже:
call.enqueue(new Callback<Object>() {
@Override
public void onResponse(Call<Object> call, Response<Object> response) {
response = response.body();
}
@Override
public void onFailure(Call<Object> call, Throwable t) {
}