在WPF程序中,你可以调用“App.Exit()”,你的程序就终止了。但是在 WP7 上面就没那么简单了,因为没有 Exit() 方法。
如果你抛出一个未被处理的异常,你的程序将被终止
但是这个技术将不能通过认证。我这里提到它是想说它曾经是可行的。还有一个方法:
在上面的代码中,我们首先清空回退堆栈。回退堆栈是针对你的程序的。它包含了所有自从你调用 NavigationService 的 Navigate 方法。清空回退堆栈可以保证在你按回退按钮的时候退出你的程序。
这里的问题是,调用“base.OnBackKeyPress()”不起作用。所以你的退出程序只是清空了回退堆栈,但是没有退出程序。
下面的代码将解决问题
在上面的代码中,我们在不能回退的情况下回退。在这种情况下 CanGoBack 属性是false。当 CanGoBack 属性是false的时候调用 GoBack 方法会抛出未被处理的异常。任何未被处理的异常将导致程序退出。
为什么要这么做?
这看起来和直接抛出异常没有什么区别但是我觉得这个方法有价值是因为也许某天没有处理的“throw”语句将不能通过认证。在我看来这个方法有可能成为将来 Exit() 的实现。
这原本就是个错误!因为WP7的程序就不应该退出,除非是硬件关机。整个框架就没有 Exit 的实现。
来自微软的解释如下:
总结:也许将来我们会有 Exit 方法。但是现在没有。也就是说你的应用不应该退出。
原文链接,转载请注明来自 OSChina.NET
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。