2014-09-18 2 views
0

Я создаю приложение, в котором пользователь может вводить данные, находясь в режиме онлайн и офлайн. Эти данные должны быть синхронизированы с сервером. Если пользователь подключен к сети, это не проблема. Но теперь мне нужно отправить данные, введенные пользователем, находясь в автономном режиме, в тот момент, когда он получает интернет-соединение (например, когда он покидает самолет и телефон подключается к сети).Отправить данные приложения, как только мобильное устройство получит подключение к Интернету

Текущее решение, которое я имею в виду, заключается в использовании фоновых сервисов, доступных на iOS и Android, для опроса сервера каждые X минут, чтобы узнать, находится ли он в сети. Это не похоже на проблему для Android. iOs, похоже, сложнее. В соответствии с этим постом, iOS app upload data to server as soon as network is available, это невозможно. Но похоже, что iOS 7 добавила новые возможности фона, которые могут сделать этот вариант использования допустимым. Я просто не могу найти никаких хороших примеров или документации об этом.

Итак, основной вопрос заключается в том, как я могу обнаружить, что телефон приходит в сеть, даже когда мое приложение не используется в данный момент (и даже не использовалось вообще с момента последнего перезапуска телефона) ?

+0

Я думаю, что я запуталась. Этот вопрос связан с Android или iOS? – Leo

+0

Вот вам [учебник] (http://www.appcoda.com/ios7-background-fetch-programming/) для фоновой выборки в iOS7, но все же этот выбор фоновой выборки полностью зависит от iOS, поэтому у вас не может быть исправлено временной интервал для создания веб-сервиса. – nikhil84

+0

Относительно обоих. Функциональность должна быть кросс-платформой, поэтому мне нужен лучший стратегический подход для обеих платформ. Стратегия, необходимая для iOS, имеет немного более высокий приоритет, потому что я не мог найти ничего о том, как справиться с этим. –

ответ

0

Недавно я нашел идеальный фрагмент кода для получения фоновой выборки.

Примечание: При работе с Background Fetch существует ограничение, о котором вы должны знать. Время выполнения фона, заданное приложению, не бесконечно. iOS предоставляет 30-секундный временной интервал для того, чтобы приложение было разбужено, извлекло новые данные, обновило его интерфейс, а затем снова включилось. Вы обязаны следить за тем, чтобы все выполненные задания успели закончить в течение этих 30 секунд, иначе система внезапно остановит их. Если требуется, хотя больше времени, то Фоновая Transfer Service API можно использовать

Код: DemoProject

Ссылка: ios7-background-fetch-programming

Я надеюсь, что это будет полезно для вас.

0

Ios не позволит вашему приложению работать в свернутом состоянии в течение бесконечного времени, если ваше приложение не является приложением музыкального плеера, в зависимости от местоположения и т.д.

+0

, что, безусловно, верно для pre iOS 7, но если я правильно понимаю, теперь есть способы активировать фоновые службы, которые могут выполнять задачи. –

+0

вы можете использовать средство обновления фонового приложения для обновления вашего приложения. – user2885077