Как показать вращающийся значок при использовании модификации 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)


arrow_upward
2
arrow_downward

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

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

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

person Michael    schedule 18.03.2016