Можно ли создать фоновый сервис для Windows Phone 7.5 или iOS? - PullRequest
2 голосов
/ 19 октября 2011

У меня есть Android-приложение, в котором служба, работающая круглосуточно, 7 дней в неделю получает GPS-координаты и отправляет их на серверЭто требование.

Могу ли я написать такой же сервис для iPhone?Я не уверен, если это возможно.

Могу ли я написать тот же сервис для WP7?Я думаю, что было невозможно запустить сервис раньше.Что-нибудь изменилось в 7.5?

РЕДАКТИРОВАТЬ: Я не уверен, почему кто-то проголосовал.Это конкретный вопрос Да / Нет.

Ответы [ 4 ]

6 голосов
/ 19 октября 2011

Это возможно в WP7 с введением фоновых задач в Mango. На самом деле, есть встроенный механизм опроса GPS, предоставляемый API, который обеспечивает более эффективное использование батареи.

Не уверен, что если оно снизится до 5 минут, подумайте, что это нечто большее, чем 30 минут. Это также несопоставимо со службой Windows - так что не думайте об этом. Фоновые задачи сильно ограничены, чтобы телефон реагировал на запросы пользователей - чтобы использовать их, нужно хорошо поиграть с требованиями.

Введение в фоновые задачи, в нем также говорится о GPS, что я упоминал. Вся серия стоит вашей полосы пропускания и времени загрузки и просмотра:

http://channel9.msdn.com/Series/Mango-Jump-Start/Mango-Jump-Start-06-Windows-Phone-Multi-tasking--Background-Tasks

Не могу ответить за iPhone.

1 голос
/ 19 октября 2011

Это также возможно на ios4 +, но не по времени.Либо вы регистрируетесь для точного (GPS) или неопределенного местоположения (Wi-Fi и WAN местоположение), который доступен для доступа в фоновом режиме, но не всегда можно отправить эти данные на сервер, потому что после 10 минут в фоновом режиме ваше приложение не может сохранитьсетевое соединение живое.Таким образом, вы должны буферизовать эти данные и подождать, пока пользователь запустит ваше приложение.

IOS отправляет уведомления в ваше приложение в зависимости от необходимой точности и в зависимости от distance-filter

ios-приложения не отличаются между сервисами и действиями (как в android).все это объединено в одном приложении.

0 голосов
/ 15 февраля 2012

В WP7 Mango вы не можете получить новое местоположение от фонового агента.Следующий код вернет последнее доступное местоположение (до 15 минут):

private GeoPosition<GeoCoordinate> GetCachedLocation()
{
    GeoCoordinateWatcher geoWatcher;
    geoWatcher = new GeoCoordinateWatcher(); //Start a new watcher with default level of accuracy
    geoWatcher.Start();
    //Get latest cached position
    GeoPosition<GeoCoordinate> position = geoWatcher.Position;
    geoWatcher.Stop();
    return position;
}

Как вы можете видеть, здесь используется GeoCoordinateWatcher.Согласно MSDN (http://msdn.microsoft.com/en-us/library/hh202962(v=vs.92).aspx):

. Этот API-интерфейс, используемый для получения географических координат устройства, поддерживается для использования в фоновых агентах, но он использует кэшированное значение местоположения вместо данных в реальном времени.значение местоположения обновляется устройством каждые 15 минут.

Кроме этого, мне не удалось найти много информации. Вы можете создать GeoCoordinateWatcher с самоопределенной точностью, но я не могуне проверял это. Возможно, он вернет последнее доступное кэшированное местоположение, которое удовлетворяет требованию точности.

0 голосов
/ 19 октября 2011

Здесь также есть «некоторые ограничения» (много), но, возможно, службы Microsoft Push подойдут вам:

Обзор push-уведомлений для Windows Phone

Поскольку опрос не является хорошей практикой для этого, push работает лучше в этом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...