Приложение Win10 UWP обрабатывает длительное нажатие кнопки «Назад»

Что происходит с точки зрения приложения, когда пользователь держит кнопку на телефоне W10, а диспетчер приложений показывает приложения в карусели?

Я подозревал, что приложение сразу блокируется, но, похоже, я ошибался...

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

LE: в этом случае срабатывает событие приостановки работы приложения.


person Adam Bartha    schedule 21.03.2016    source источник
comment
Что ты пытаешься сделать? Это равносильно возврату к текущему приложению при нажатии клавиши Alt, так что вам не нужно делать ничего особенного?   -  person Rowland Shaw    schedule 21.03.2016
comment
Я пытаюсь освободить некоторые ресурсы в этом сценарии. Во всяком случае, приостановленное событие срабатывает, не знаю, почему не видел этого события, когда писал вопрос.   -  person Adam Bartha    schedule 23.03.2016


Ответы (1)


В этом случае будут запущены только два события Window's - VisibilityChanged и Activated. Пройдите простой тест, чтобы увидеть, как это работает:

public MainPage()
{
    this.InitializeComponent();
    Window.Current.Activated += (s, e) => { Debug.WriteLine($"Activated event due to {e.WindowActivationState}"); };
    Window.Current.VisibilityChanged += (s, e) => { Debug.WriteLine($"Visibility event - window is {e.Visible}"); };
}

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

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

person Romasz    schedule 21.03.2016