Как показать вращающийся значок при использовании модификации 2, чтобы получить ответ от асинхронного вызова Restful

Я использовал платформу Square/Retrofit Restful для получения данных из службы Restful, и она работает как шарм, фрагмент кода выглядит следующим образом:

FooService restInterface =  new RestAdapter.Builder().setEndpoint(FooService.URL).build().create(FooService.class);
    restInterface.getAllFoos(new Callback<FooModel>() {
        @Override
        public void success(FooModel model, Response response) {
                //get a list of Foo instances.
            }
            updateUI();
        }

        @Override
        public void failure(RetrofitError error) {
                //log errors.
        }

    });

Я понимаю, что это асинхронный вызов, однако могу ли я иметь вращающийся значок вверху, пока модификация занята работой в фоновом режиме? В случае, если сеть недоступна.

Также можно ли установить тайм-аут, чтобы, когда время истекло, подсказка вариантов продолжить ожидание или прервать миссию?

Я заметил, что на этом сайте было что-то близкое: Возможно ли показывать индикатор выполнения при загрузке изображения через Retrofit 2 , но до сих пор не могу понять, как это сделать. Кроме того, мое требование может быть проще.


person J.E.Y    schedule 18.03.2016    source источник


Ответы (1)


Да, это вполне возможно.

Вы можете сделать вызов какой-либо функции startSpinner() непосредственно перед или даже сразу после вызова конечной точки. Затем в success() и failure() вы можете вызвать какую-то функцию stopSpinner().

Что касается функции тайм-аута, вы должны установить тайм-аут на базовом HTTP-клиенте, а не на Retrofit. Если вы не хотите использовать тайм-аут по умолчанию, вы можете узнать больше о настройке пользовательского здесь.

person Michael    schedule 18.03.2016