快速构建Windows 8风格应用30-应用生命周期管理

原文:快速构建Windows 8风格应用30-应用生命周期管理

引言

Windows 8 中可以启动多个应用并在其中切换,我们没有必要担心降低系统速度或消耗电池电量。 因为系统会自动挂起(有时会终止)在后台正在运行的应用。设计良好的应用可以由系统挂起、终止以及重新启动,并且这些过程看起来该应用一直在运行中。

一、原理

1.当激活了应用时,无论任何原因,系统都会发送 Activated 事件

2.每当用户切换到桌面或其他应用时,系统都会挂起你的应用,系统会发送Suspending事件

3.每当用户切回到你的应用时,系统就会恢复你的应用,系统会发送Resuming事件

生命周期变化

当用户启动应用程序,该应用在生命周期中可以发生哪些变化呢?

1.运行的应用,可以进行挂起,变成挂起的应用

2.挂起的应用,可以进行恢复,变成运行的应用

3.挂起的应用,如果系统内存不足,将直接被干掉

多应用在相互切换时的状态变化

1.启用App1

2.启用App2后,App1将被挂起

3.启用App3后,App2将被挂起,同理任何一个App后,之前的App将被挂起

4.当内存有限时,App1将会被终止掉,但是用户不会得到任何通知

5.用户启用App2后,App2立即从挂起状态恢复

Activated介绍

1.当激活应用时会触发Activated 事件

2.Windows.UI.Xaml.Application 类定义了为处理各种不同的激活类型而可以替代的一些方法,例如:OnActivated和OnLaunched

3.应用应该加载其保存的应用程序数据并刷新其显示的内容

Suspend介绍

1.系统资源专注在于用户交互的前台应用上

2.挂起的应用不会消耗任何CPU、磁盘和网络资源

3.不活动的应用对电池没有任何影响,它们是由系统挂起

4.应用之间能够快速切换

5.挂起的应用会保存在内存中

6.挂起应用中的所有线程都被挂起

Terminated介绍

1.系统需要更多内存触发

2.用户切换触发

3.用户关闭应用触发

4.系统关机触发

5.应用崩溃触发

6.在终止应用期间,没有事件被触发… 你应该在应用挂起时保存所有信息

二、实现

激活应用

当激活了应用时,无论任何原因,系统都会发送 Activated 事件。有关激活类型的列表,可以参阅 ActivationKind 枚举。

Windows.UI.Xaml.Application 类定义了为处理各种不同的激活类型而可以替代的一些方法。

对于其中一些激活类型,有特定的方法可以替代。对于其他激活类型,则替代 OnActivated 方法。

挂起应用

1.每当用户切换到桌面或其他应用时,系统都会挂起你的应用。每当用户切回到你的应用时,系统就会恢复你的应用。当系统恢复你的应用时,你的变量和数据结构的内容与系统将你的应用挂起之前的内容相同。系统会将你的应用完全恢复到你离开时的状态,使用户感觉你的应用好像一直在后台运行一样。

2.当你的应用被挂起后,系统会尝试将你的应用及其数据保留在内存中。但是,如果系统没有资源将你的应用保存在内存里,则将终止你的应用。当用户切换回已终止的挂起应用时,该应用会发送 Activated 事件,且应该在其 OnLaunched 方法中还原其应用程序数据。

3.当终止应用时系统不会通知应用,因此当挂起应用时,你的应用必须保存其应用程序数据并释放独占资源和文件句柄,并且当在终止后又激活应用时还原这些内容。

恢复应用

1.每当用户切换到桌面或其他应用时,系统都会挂起你的应用。每当用户切回到你的应用时,系统就会恢复你的应用。当系统恢复你的应用时,你的变量和数据结构的内容与系统将你的应用挂起之前的内容相同。系统会将你的应用完全恢复到你离开时的状态,使用户感觉你的应用好像一直在后台运行一样。但是,应用可能已挂起很长一段时间,因此,它应当刷新在应用挂起之后可能已发生更改的任何显示内容(如新闻源或用户位置)。

2.如果你的应用没有任何需要刷新的显示内容,则它无需处理 Resuming 事件。

三、最佳实践

务必执行项

1.一般情况下,将应用恢复为用户离开该应用时的状态,而不要重新启动

2.如果自用户上次访问应用以来已经过很长一段时间,则重新启动应用

3.当应用被挂起时保存应用程序数据

4.当挂起应用时释放独占的资源和文件句柄

5.在应用被挂起后恢复应用时,如果其内容自用户上次查看以来有所更改,则更新 UI

6.在应用被终止后恢复应用时,使用已保存的应用程序数据还原你的应用

7.如果无法预测用户希望恢复还是重新启动,则向他们提供选项

禁止事项

1.勿在应用移至屏幕外时终止应用

2.勿还原因崩溃而终止的应用的状态

3.勿在应用的 UI 中为用户提供关闭或终止应用的方法

不同场景应该做哪些

相关参考资料:

1.管理应用生命周期和状态(使用 C#/VB 和 XAML 的 Windows 应用商店应用)

2. 如何激活应用

3.如何挂起应用

4.如何恢复应用

5.应用程序生命周期(Windows 应用商店应用) (Windows);

6.应用的挂起和恢复指南(Windows 应用商店应用) (Windows)

时间: 2024-08-01 22:54:04

快速构建Windows 8风格应用30-应用生命周期管理的相关文章

快速构建Windows 8风格应用37-常见发布注意事项

原文:快速构建Windows 8风格应用37-常见发布注意事项 引言 通常我们发布Windows Store应用失败后,会返回一些错误需要我们去修改.我之前在给学生做培训的时候发现大部分同学应用被打回来,通常由以下几个常见原因: 1,隐私策略: 2,应用图标和文字: 3,本地化: 为了避免这三个原因导致应用发布失败,我们开发应用的时候该怎么去注意并有效避免呢? 一.隐私策略 1,添加隐私策略的场景(摘取MSDN) 应用中收集个人信息或使用他人提供的软件,则需要随应用提供隐私策略或其他许可证条款.

快速构建Windows 8风格应用32-构建辅助磁贴

原文:快速构建Windows 8风格应用32-构建辅助磁贴 引言 Windows Phone中,我们开发者可能会开发的一个功能点是将数据列表中某一项"Pin To Start(固定到开始屏幕)",大家都知道这种固定到开始屏幕的磁贴叫做辅助磁贴(也叫二级磁贴),用户可以通过该辅助磁贴启动应用程序并导航到应用程序中某一个页面或某一位置. 其实Windows 8 Store风格应用程序也引入了辅助磁贴的概念,用户在使用Windows 8 Store应用的辅助磁贴和Windows Phone

快速构建Windows 8风格应用27-漫游应用数据

原文:快速构建Windows 8风格应用27-漫游应用数据 本篇博文主要介绍漫游应用数据概览.如何构建漫游应用数据.构建漫游应用数据最佳实践. 一.漫游应用数据概览 1.若应用当中使用了漫游应用数据,用户可以很轻松的在不同的设备间保持应用数据的同步. 2.Windows会将更新的漫游数据同步到云端,并将数据更新到其他安装此应用的设备上. 3.Windows 限制了每个应用可漫游的应用数据大小.若我们的应用达到漫游数据大小的限制,在应用的总漫游数据再次少于该限制之前,不会将应用的任何数据更新到云端

快速构建Windows 8风格应用21-构建简单媒体播放器

原文:快速构建Windows 8风格应用21-构建简单媒体播放器 本篇博文主要介绍如何构建一个简单的媒体播放器. <快速构建Windows 8风格应用20-MediaElement>博文中提到了如何使用MediaElement对象进行播放视频的简单功能,但是在实际应用中需要更复杂的功能,例如:控制视频播放的控件.全屏模式.进度条等等其他功能. 本篇博文中示例使用应用程序中包含的媒体文件,当然我们也可以通过网络或者本地[使用FileOpenPicker]进行加载某一媒体文件. MSDN中关于媒体

快速构建Windows 8风格应用35-触控输入

原文:快速构建Windows 8风格应用35-触控输入 引用 Windows 8设备通常具有多点触摸屏,用户可以同时使用多个手指来进行不同的输入交互,如点击.拖动或收缩等手势操作.另外Windows 8中将触摸.鼠标和笔/触笔交互是作为指针输入进行接收.处理和管理. 一.手势处理 首先我们来汇总一下Windows 8中常用的手势都有哪些. 1,点击:用一个手指触摸屏幕,然后抬起手指. 2,长按:用一个手指触摸屏幕并保持不动. 3,滑动:用一个或多个手指触摸屏幕并向着同一方向移动. 4,轻扫:用一

快速构建Windows 8风格应用22-MessageDialog

原文:快速构建Windows 8风格应用22-MessageDialog 本篇博文主要介绍MessageDialog概述.MessageDialog常用属性和方法.如何构建MessageDialog   MessageDialog概述 MessageDialog指的就是对话框. 对话框的命令栏中最多包含三个命令.如果我们指定任何命令,将会有一个默认命令添加到对话框中,目的是关闭对话框. 对话框弹出后界面中所有元素将在对话框下面显示,并且将会阻塞任何触摸事件直到用户进行响应对话框. 另外对话框应该

快速构建Windows 8风格应用36-商店应用发布流程

原文:快速构建Windows 8风格应用36-商店应用发布流程 引言 在发布应用之前,我们需要注册开发者账号才能够发布应用.我们可以登录https://appdev.microsoft.com/StorePortals/ 该网址进行注册开发者账号,同时我们也可以点击这里来浏览MSDN给到的开发者账号注册的详细步骤.那么注册完成开发者账号后,如何发布Windows Store 应用程序呢? Windows Store App 发布流程 1,使用Visual Studio 2012打开要上传的应用,

快速构建Windows 8风格应用23-App Bar概述及使用规范

原文:快速构建Windows 8风格应用23-App Bar概述及使用规范 本篇博文主要介绍App Bar概述.App Bar命令组织步骤.App Bar最佳实践.   App Bar概述 Windows 8 Store应用中的App Bar(应用程序工具栏)起到的作用和Windows Phone中AppBar一样.我们可以向用户提供各种操作接口,实现导航或者触发命令等. AppBar一般默认是隐藏的,也可以设置为始终可见.我们可以通过清扫屏幕上边缘或下边缘时显示AppBar,AppBar被点击

快速构建Windows 8风格应用26-本地应用数据

原文:快速构建Windows 8风格应用26-本地应用数据 本篇博文主要介绍如何获取应用的设置和文件容器.如何将数据写入设置.如何从设置中获取数据.如何删除设置中数据.如何将数据写入文件.如何从文件中获取数据. 当应用安装时,系统会为设置和文件等应用数据提供它自己的每用户数据存储.我们不需要知道这些数据存在哪里或如何存储,因为系统会负责管理物理存储工作.我们只需使用应用数据API就可以了. 本地应用数据一般用于当前设备数据的持久化,并且本地数据没有限制大小,通常情况使用本地数据存储大型数据集.