-2

Я собираюсь написать приложение, отправляющее данные на сервер с почтовым запросом. Эти запросы могут завершиться неудачно, и если они это сделают, я хочу, чтобы они были отправлены, когда соединение снова подключено к сети.Android - отправка данных в веб-службу

Каков наилучший способ реализации этого поведения?

EDIT Я прочитал несколько статей и придумал следующую идею. Я регистрирую BroadcastReceiver в манифесте и говорю ему, чтобы он прослушивал android.net.conn.CONNECTIVITY_CHANGE и android.net.wifi.WIFI_STATE_CHANGED. Когда запрос не может быть отправлен, я сохраняю запрос. Если соединение станет живым, я отправлю кэшированные запросы.

+1

Не могли бы вы показать код, который вы пробовали? или logcat с ошибкой? –

+0

Пожалуйста, разместите свой код? – NarenderNishad

+0

Извините, у меня пока нет кода. Я выясняю, что лучше всего написать код. Я отредактирую свой оригинальный вопрос, чтобы сделать это более понятным. –

ответ

1

Каков наилучший способ реализации этого поведения?

Сделать Volley запросы от bound Service, и отправить результат обратно к Activity, если он все еще находится на переднем плане.

EDIT:

не будет ли это быть проблемой, если пользователь решит закрыть приложение?

Это именно почему вы должны использовать Service. Если вы делаете это с Activity, запрос продолжается, даже если Activity уволен. Если ваш запрос Volley выражается как экземпляр анонимного класса, он продолжает удерживать неявную ссылку на внешний класс Activity, что приводит к утечке памяти/исключению.

+0

не будет проблемой, если пользователь решит закрыть приложение? –

+0

@GuidoNeele: см. Отредактированный ответ :) –

0

Постоянно проверяйте подключение к Интернету с помощью обработчика или службы, если он отправляет данные на сервер, иначе не отправляйте его.

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