【发布时间】:2010-12-15 22:00:05
【问题描述】:
有没有一种方法可以轻松停用应用程序?我知道如何真正停用应用程序的唯一方法是点击后退按钮,直到我进入主屏幕。
现在我的应用程序有几个页面,如果我想关闭它,我必须一遍又一遍地点击返回按钮。
代码中是否有一种方法可以让我停用它?
【问题讨论】:
标签: windows-phone-7
有没有一种方法可以轻松停用应用程序?我知道如何真正停用应用程序的唯一方法是点击后退按钮,直到我进入主屏幕。
现在我的应用程序有几个页面,如果我想关闭它,我必须一遍又一遍地点击返回按钮。
代码中是否有一种方法可以让我停用它?
【问题讨论】:
标签: windows-phone-7
恐怕不会 - 没有干净的方法可以强制应用退出。
当然,您可以抛出异常 - 但这远非干净,并且可能会阻止您的应用获得批准。
IMO 的情况有点奇怪,看到它随着时间的推移而发生变化我不会感到惊讶 - 但就目前而言,仅此而已。
(这意味着如果你的应用有 EULA,你甚至不能有一个“拒绝”按钮......用户可以退出的唯一方法是点击返回/开始/搜索。)
【讨论】:
如果您也点击“开始”按钮,您可以关闭该应用程序。没有其他机会从代码中关闭/退出 Windows Phone 7 应用程序。
【讨论】:
我目前的观点是,我认为 WP7 应用程序不需要退出功能。如果您想知道原因,我在这 2 个问题中解释了原因。
Close a WP7 application programatically?
Windows Phone 7 close application
话虽如此,您可能需要考虑一些事情。首先是为您的用户提供一种快速导航回您的主页的方法。
Want to "reset" an app but how to deal with backstack pages?
Removing a page from the navigation stack
Can the navigation history be cleared
已经发布了几个解决方案。
最近还发布了代码,让您可以更简单地构建它。
Solving Circular Navigation in Windows Phone Silverlight Applications
使用其中一种实现,您的用户可以根据需要通过 2 个操作“退出”您的应用。
请注意,如果他们想立即离开您的应用,只需按开始键。
我认为我们将不得不等待,看看这种情况会如何发展。如前所述,这与我们习惯的有点不同,但我准备给这个想法一个机会,并审查这种方法的优缺点。
【讨论】:
您可以调用 NavigationService.RemoveBackEntry() 这将删除所有其他页面,以便下次点击后退按钮时应用程序将退出。
【讨论】: