2015-08-06 9 views
1

Я работаю с приложением, которому нужно позвонить в webservice, чтобы получить данные. Я использую Retrofit с обратным вызовом для обработки данных результата. Это означает, что я вызываю webservice асинхронно.Android: лучший способ обработать результат обратного вызова, чтобы избежать сбоя?

И есть проблема, что некоторое время пользователь переходит к другому действию, пока запрос не завершен. Таким образом, когда он завершается, он вызывает некоторый ресурс, который больше не существует -> приведет к сбою.

За исключением ловли NPE здесь, не могли бы вы дать какую-то другую идею для этого?

+0

использование volley request.it запрос аннулирование. Предпочтительный google, удобный в использовании. –

+0

спасибо за вашу помощь, RamBabu –

ответ

1

Я нашел this article, которые объясняют отличную структуру для Android-приложения, основанного на событиях шины.

В onResume/OnPause, вы прикрепить текущий фрагмент/активности на события, и вы подписаться на события во фрагменте.

В приложении вы можете зарегистрировать, например, UserService, который будет обрабатывать событие автобус как postLogin и когда-то сделали, создать и отправить новый вызов события onLogged (к примеру).

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

+0

отлично, я сейчас использую событие bus, но не думаю об этом. Спасибо, я все еще на нем. –

Смежные вопросы