导出 (0) 打印
全部展开
信息
您所需的主题如下所示。但此主题未包含在此库中。

如何退出或关闭 Windows Phone 8 的应用

2014/6/18

本主题介绍退出或关闭 Windows Phone 应用的方法和最佳做法。

本主题包括以下部分。

下表列出退出或关闭 Windows Phone 应用的用户操作、事件和方法。

在下表中,状态是指由 PhoneApplicationService 在应用级别维护的状态字典,以及由 PhoneApplicationPage 在页面级别维护的状态字典。

用户操作、事件或方法

结果

引发的事件

对后退堆栈和状态的影响

用户按应用的第一个页面上的“后退”按钮。

应用将关闭。

Closing

应用将从后退堆栈中删除。不会保留状态。

用户按“开始”按钮。

应用将停用。

Deactivated

应用将保留在后退堆栈中,并且状态将一直保留到发生以下事件:

  • 用户从“开始”屏幕或通过“后退”按钮以外的任何方法重新启动应用。

  • 应用将从后退堆栈的末尾删除,因为该后退堆栈已满。

  • 设备将重新启动,或者应用将被卸载。

出现未处理的异常。

应用将终止。

无。

应用将从后退堆栈中删除。不会保留状态。

应用调用 Terminate 方法。

应用将终止。

无。

应用将从后退堆栈中删除。不会保留状态。

下面是退出或关闭 Windows Phone 应用的最佳做法。

允许 Windows Phone 操作系统管理应用的生命周期和资源。

您不必担心关闭应用或获释放其资源。

  • 当用户按“后退”以退出应用时,系统将关闭该应用。

  • 当用户启动其他应用时,您的应用将停用并进入休眠状态。如果其他应用需要更多资源,则将对您的休眠应用进行逻辑删除。

Windows Phone 操作系统会处理这些情况,并自动管理手机的资源。有关详细信息,请参见 Windows Phone 8 的应用激活和停用

不要使用异常退出您的应用。

您应用中的未处理异常将不必要地占用用户手机和 Windows Phone 服务器上的资源。

手机将为未处理的异常生成并上传崩溃转储,以帮助您查找并修复代码中的 bug。如果通过使您的应用发生崩溃来将其关闭,则会浪费用户的电池电量和网络带宽。

不要提供“关闭”或“退出”按钮。

用户知道,他们可以按“开始”或使用“后退”按钮离开您的应用。如果您提供的选项不符合 Windows Phone 编程模型,并且用户在其他应用中看不到该选项,则可能导致用户十分困惑。有关详细信息,请参见以下博客帖子:

以自然的方式管理后退堆栈并处理“后退”按钮。

用户在您的应用中导航时可使用手机的“后退”按钮,返回到该应用中最自然的页面。这意味着,您的应用并非总是将用户带回到以前查看的项目。它也不会在所有情况下均将用户带回到同一页面。

请从内置应用行为的角度出发,考虑以下示例:

  • 在您点击提醒以查看提醒之后,“后退”按钮会将您带回到上一个活动。它不会带您访问“日历”。

  • 在您点击已固定的项目(即次要磁贴),以查看特定项目(如联系人)后,“后退”按钮会将您带回到“开始”屏幕。它不会带您访问“人脉”中心。

在交易(例如,需要几个步骤的在线购物)期间,“后退”按钮会在该交易进行时将用户带回到上一步。当交易完成后,“后退”按钮又会带用户进行浏览。使用 RemoveBackEntry 方法可在交易完成时从后退堆栈中删除不必要的页面。有关详细信息,请参见如何使用 Windows Phone 8 的后退堆栈进行导航

您可以使用多种方法避免在后退堆栈中保存页面,从而简化导航。

  • 对于一系列的详细项目,在单个页面上的一个地方浏览这些项目。重新绑定控件以显示下一个项目。使用应用栏按钮在两个项目之间进行导航。“后退”按钮会将用户带回到项目列表。例如,这就是内置电子邮件应用的工作原理。

  • 对于警报等暂时显示的 UI,请考虑使用 Popup 控件。“后退”按钮会关闭弹出窗口。若要启用此行为,请在该弹出窗口可见时处理 BackKeyPress 事件,并设置 e.Cancel = true

决不应使用“后退”按钮更改当前页面的内容或向前导航到新内容。

有关详细信息,请参见以下博客帖子:

本节讨论开发人员有时要对他们的应用实现“关闭”按钮的原因。

重要说明重要说明:

有关本节中建议的解决方案的详细信息,请参见上一节退出或关闭 Windows Phone 应用的最佳做法

终止应用的原因

建议的解决方案

应用无法继续运行。例如,用户已拒绝接受许可协议。

允许用户按“开始”“后退”退出应用。

或者,调用 Terminate 方法。

应用处于不稳定状态。例如,发生了未处理的异常。

允许操作系统终止应用。

用户已在大量页面中进行导航。我不想强制用户多次按“后退”按钮退出。

将用户带回到应用中最自然的页面。例如,当用户在一系列项目中导航后,系统会将用户带回到项目列表。不要强制用户对每个项目执行后退操作。

考虑添加“主页”按钮,以将用户带回到应用的主页。

或者,允许用户按“开始”退出应用。

我想释放资源供其他应用使用。

允许操作系统管理应用的生命周期和手机的资源。

显示:
© 2015 Microsoft