2016-06-10 4 views
0

В телефоне Windows у нас были некоторые жизненные циклы, которые недоступны в UWP.Как обнаружить приложение, а не приложение, с которым пользователь взаимодействует?

Приложение, которое я разрабатываю, обменивается данными по Bluetooth. В настоящий момент я общаюсь с устройством Bluetooth каждые 1 минуту. Однако, когда пользователь переключается на другое приложение или просто выключает экран (и приложение все еще работает), я хотел бы, чтобы связь связывалась каждые 10 минут.

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

Есть ли другой способ обнаружить выключатель приложения или экран выключен.

Я знаю, что этот вопрос не содержит никакого кода, однако я исследовал жизненные циклы UWP, но решения там не было.

Thx

+0

Вы зарегистрировали обработчик событий для события Application.Suspending? [Посмотрите здесь] (https://msdn.microsoft.com/en-us/windows/uwp/launch-resume/app-lifecycle) –

+0

Я поставил точку останова в App.cs. Это событие не срабатывало. Кроме того, когда я смоделировал OnSuspending из меню VS2015, и событие/обнаружение прекрасное. –

+0

Как насчет возобновления приложения ИЛИ OnNavigatedTo события? любой из этих огней? –

ответ

1

При отладке the suspending event won't be fired, в связи с ограниченными возможностями PLM. Вам придется вызывать его вручную на вкладке жизненного цикла. Как правило, при запуске без отладчика прилагается, он будет срабатывать до нескольких секунд после того, как вы вышли из приложения - экран блокировки, переключатель приложения и т.д.

Для ваших целей Приостановка события будет лучшими, ИМХО. В противном случае вы также можете подумать о Window.Current.VisibilityChanged и Window.Current.Activated - но эти два не имеют дефекаторы и могут быть запущены в других ситуациях, а не только о тех, о которых вы упомянули.

+0

Ваш ответ был прав на деньги, thx. –