2016-06-02 6 views
1

Я создаю приложение для Android, которое в основном вызывает веб-службу и отображает ответ; и я следую шаблону MVP, чтобы выполнить его. Поэтому самой большой проблемой является проверка состояния интернета перед каждым звонком. Я думал создать абстрактный слой между Презентатор & API. Таким образом, запрос API будет сначала передаваться с Абстрактный интернет-уровень, и если он пройдет успешно, тогда будет вызван только API.
Создание отдельного слоя выглядит лучше, на мой взгляд, вместо того, чтобы называть Internet check logic от Presenter, каждый раз. Пожалуйста, помогите мне с дизайном, если у вас есть идея. СпасибоAndroid Check Check Layer

+0

Если бы я был вами, я бы использовал библиотеку Retrofit для http-запросов. Он обрабатывает статус подключения к Интернету. Также есть класс Interceptor. – Ozgur

+0

Я уже использую модификацию, но я не знаю, как с ним работать. – Coderkhan

+0

Какая версия? В модификации 2, если соединение отсутствует, оно будет в методе onFailure() .... – Ozgur

ответ

0

Вы можете создать BasePresenter, что ведущий будет суперкласс всех ваших докладчиков. Теперь в BasePresenter вы можете написать вашу общую API (защищенный/публичной) вещи, как сделать http запрос, показывая загрузчик, проверьте подключение к Интернету и т.д.

Каждый раз, когда вы делаете http вызов через BasePresenter, ваш BasePresenter будет первым проверить для и затем делает HTTP-вызов на сервер. Это связано с тем, что всегда будет легко изменить что-либо, связанное с логикой http или логикой проверки интернета или что-то еще. Потому что все будет в одном месте (BasePresenter) и легко доступно для суб-презентаторов.

Таким образом, вы можете достичь реализации функции.

+0

Спасибо, я воспользуюсь вашим предложением. – Coderkhan

+1

Добавление логики, связанной с Android, не очень хорошая идея в презентаторе, возможно, посмотрите на это сообщение http://stackoverflow.com/questions/37007994/android-mvp-where-check-internet-connection# –

+0

Я не говорю о добавить Android-логику в презентациях. Просто предложил добавить в него HTTP-сообщение. Тем не менее, контроллеры могут использоваться одинаково. –

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