【问题标题】:Windows phone 8.1 Handling App from Close button in the pageWindows phone 8.1 从页面中的关闭按钮处理应用程序
【发布时间】:2014-09-09 22:40:34
【问题描述】:

在我的 windows phone 应用程序中,当用户离开页面时,我必须删除一些文件。 我已经在 OnBackKeyPress 事件中处理了这个问题。这工作得很好。 问题是 windows phone 8 和 windows phone 8.1 的更新更新在右上角也有关闭按钮。我还没有找到处理这个事件的方法。 谁能告诉我如何处理此事件并删除文件。

【问题讨论】:

    标签: windows-phone-8 windows-phone-8.1


    【解决方案1】:

    您应该使用 OnNavigatedFrom,而不是使用 OnBackKeyPress。无论用户以何种方式离开页面,都会触发此事件。


    如果您只需要处理应用程序暂停/终止时的特定情况,您可以订阅PhoneApplicationService 上的DeactivatedClosing 事件。

    PhoneApplicationService.Current.Deactivated += yourHandler;
    

    请注意,您的事件处理程序是在您的页面中声明的非静态方法,那么您必须确保在离开页面时取消订阅该事件,以避免内存泄漏。要知道何时取消订阅,您可以坚持您的 OnBackKeyPress 逻辑。

    【讨论】:

    • 比如说,我有 MainPage,Page1。我从 MainPage 打开 Page1。当我从 Page1 导航回 MainPage 时,我删除了这些文件。在这种情况下,我从 Page1 打开 Page2,在这种情况下我不想删除该文件。这就是为什么我不在页面的 OnNavigatedFrom 中而是在 BackKeyPress 中处理文件的删除。你能建议我其他选择吗?
    • 我试过你说的。但问题依然存在。当我长按后退键时,yourHandler 会被调用。目前,我不知道我的应用程序是要关闭还是发送到后台。如果发送到后台,则我无法删除该文件,因为当应用程序恢复时,它将找不到文件。有些人可以点击关闭按钮。对此有什么想法吗?
    • 当我长按返回键并点击关闭按钮关闭应用程序时,即使 Microsoft.Phone.Shell.PhoneApplicationService.Current.Closing 事件处理程序也不会被调用。我在调试模式下试过这个。我应该在发布模式下尝试它的行为。
    • @ashok 不幸的是,Windows Phone 就是这样工作的。当您的应用程序被停用时,系统可以在没有任何通知的情况下终止它。这不是你能应付的情况。在最坏的情况下,当没有调用 Closing 事件时,在下次应用启动时删除文件
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多