如何从Windows手机上的任务切换器中删除我的应用程序?
-
21-12-2019 - |
题
我有一个通用的Windows Phone应用程序(从空白应用程序模板开始)由一个主页和三个辅助页面组成。其中导航在这些中按预期工作(归功于,这个msdn page )。
问题我运行的是,当在主页上时,当用户按下硬件后按钮时,我的应用程序将放入后台,但我的应用程序的卡仍保留在任务切换器中。无论调试器是否附加,都会发生这种情况。
我在一个基于Pivot App(WP)模板的新项目中尝试了这个,我看到了同样的问题。
我想在用户从主页上按下时“关闭”我的应用程序,以便它不再在任务切换器中。我需要手动做些什么吗?
解决方案
您可以使用application.current.exit()退出您的应用程序;在下面的硬件禁止上。
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%确定我不是编码处理程序的双倍(UN)。取决于每个导航是否始终存在导航,我猜。
编辑:我已被提醒(参见注释),当暂停时,一个应用程序会收到onnavigatedfrom事件,但在恢复时,它将不会看到一个onnavigatedto事件,导致处理程序不在这种情况。以下实施可能受到此错误的影响。
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();
}
}
. 不隶属于 StackOverflow