2014-09-09 2 views
1

Справочная информацияWindows Phone 8.1: UDP пакеты перестают быть переданы, когда телефон приложение в фоновом режиме

Я скачал Thread Pool Пример для Windows Phone 8.1 (C++) и изменить его так, что периодический таймер посылает UDP пакеты к удаленному IP на регулярном интервале.

Проблема

я заметил следующее:

  1. UDP-пакеты отправляются регулярно, когда приложение запускается с МСВС 2013 независимо от того, что вы делаете по телефону

  2. Пакеты UDP перестают быть отправленными, когда приложение запускается из списка программ телефона, когда приложение помещается в фоновом режиме.

Вопрос

Как создать периодическую задачу на Windows Phone 8.1, которая проходит каждые 10 секунд? Периодическая задача должна отправить пакет UDP на предопределенный адрес IP: PORT, независимо от того, что пользователь делает на телефоне.

Я имел взгляд на этот:

http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh977059.aspx

, но я не вижу возможности иметь по таймеру задача запускается каждые 10 секунд.

Как воспроизвести проблему

Link To Test Project

Тестовый проект включает в себя инструкции о том, как воспроизвести проблему, которую я описал.

+0

Существует (по крайней мере, когда-то) возможность «запускаться под экраном блокировки», которая эффективно отказывается от обычного жизненного цикла приложения - пользователи получают огромное предупреждение о сливе батареи при установке - я видел хотя бы один SSH клиент, который поддерживал это, но я не могу найти его сейчас ... –

ответ

0

К сожалению, для вас нет возможности использовать Windows Phone. После того, как приложение больше не работает на телефоне, оно уничтожено и больше не работает.

Вы можете достичь чего-то подобного с Background Agents, но они ограничены в том, что они могут делать, и они запускаются только каждые 30 минут.

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

Существует несколько способов взлома, которые могут быть использованы для выполнения фоновых задач, а это значит, чтобы выдать audio player task. Однако это не отличное решение.

+0

Так что в режиме реального времени для обработки аудио или сетевых потоков не может быть и речи о приложении, которое работает в фоновом режиме? он не сможет реагировать на входящую сигнализацию через UDP или TCP? – user1884325

+0

@ user1884325 Я обновил ответ с некоторой информацией о выдаче себя за работу с аудиоплеером – Mac

+0

Спасибо. Таким образом, олицетворяя задачу аудиоплеера, вы можете запускать периодические задачи, пока приложение находится в фоновом режиме. Да, это звучит как хак. Я видел, как VoIP-приложения могут принимать входящие вызовы, когда приложение находилось в фоновом режиме, или дисплей был отключен на WP8.1. Я сомневаюсь, что трюк в этих случаях заключался в том, чтобы олицетворять задачу аудиоплеера? Бесконечно глупо, что MS поставит эти ограничения на разработчиков и их приложения. – user1884325

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