ApplicationIdleDetectionMode и DispatcherTimer - PullRequest
0 голосов
/ 26 апреля 2011

Я сейчас работаю над проблемой, которую не могу решить ...

Я разработал приложение WP7, которое отправляет периодические обновления местоположения в службу. Поэтому я использую DispatcherTimer, который прекрасно работает. Теперь я тоже хочу сделать это, когда экран заблокирован. Поэтому я установил для ApplicationIdleDetectionMode значение «Отключено» в App () сразу после InitializePhoneApplication ().

Теперь у меня очень странное поведение, потому что таймер, который работает, когда экран заблокирован, кажется, заканчивается, но я не могу запустить его снова. timer.Start () вызывается, но Tick-Event не вызывается. Когда я разблокирую экран на моем устройстве, он снова работает ...

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

Поздравления Dominik

1 Ответ

0 голосов
/ 28 апреля 2011

Я удивлен, что сама структура остановит активный таймер, когда приложение заблокировано, когда ApplicationIdleDetection отключено, хотя это вполне возможно.В RunKeeper мы в любом случае не используем DispatcherTimer для этого, мы отслеживаем время пользователя на активности с помощью Observable.Timer.

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

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