Как удалить свое приложение из коммутатора задач на Windows Phone?

StackOverflow https://stackoverflow.com//questions/24025933

Вопрос

У меня есть универсальный приложение для телефона Windows (запущено с пустого шаблона приложения), состоящего из главного этапа и трех вторичных страниц.Навигация между ними работает как ожидалось (благодаря, частично Эта страница MSDN ).

Проблема, в которую я запускаю, это то, что когда на главном случае, когда пользователи нажимают кнопку заднего хода аппаратного обеспечения, мое приложение помещается в фоновом режиме, но карта для моего приложения остается в коммутаторе задач.Это происходит независимо от того, прикреплен ли отладчик или нет.

Я попробовал это в новом проекте на основе шаблона приложения Pivot (WP), и я вижу ту же проблему.

Я хочу «закрыть» мое приложение, когда пользователь нажимает с главного наличия, чтобы он больше не находился в коммутаторе задач.Есть ли что-то, что я должен делать вручную?

Это было полезно?

Решение

Вы можете выйти из приложения с помощью Application.Current.exit ();В функции HardwareButtons_Backed ниже.

public MainPage()
{
    Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;
}

private void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)
{
    /* When you don't know the namespace you can use this code instead of the lower

    string[] Namespace = Frame.CurrentSourcePageType.FullName.Split('.');
    if (!e.Handled && Frame.CurrentSourcePageType.FullName == Namespace[0] + ".MainPage")
            Application.Current.Exit();
    */
    if (!e.Handled && Frame.CurrentSourcePageType.FullName == "NAMESPACE.MainPage")
        Application.Current.Exit();
}
.

Я надеюсь, что это работает

С уважением, Кристиан

Другие советы

Вот как я закончил реализовать его, с указателями от user2799780 и Romasz, хотя я не на 100% уверен, что я не в два раза (ООН), регистрируя обработчик. Это зависит от того, всегда есть ли навигация от каждого навигации, я думаю.

Редактировать: Я напомнил (см. КОММЕНТАРИИ), что при приостановлении приложение получает приложение OnnavigatedFrom событие, но при возобновлении он не увидит, что он не увидит, что обработчик не будет зарегистрирован вэтот случай. Ниже приведена реализация, вероятно, затронута этой ошибкой .

protected override async void OnNavigatedTo(NavigationEventArgs e)
{
    // When we're on this page, pressing Back should close the app
    Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed;
}

protected override async void OnNavigatedFrom(NavigationEventArgs e)
{
    // When we leave this page, pressing Back should no longer close the app
    Windows.Phone.UI.Input.HardwareButtons.BackPressed -= HardwareButtons_BackPressed;
}

private void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e)
{
    if (!e.Handled)
    {
        Application.Current.Exit();
    }
}
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top