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立即从挂起状态恢复
1.当激活应用时会触发Activated 事件
2.Windows.UI.Xaml.Application 类定义了为处理各种不同的激活类型而可以替代的一些方法,例如:OnActivated和OnLaunched
3.应用应该加载其保存的应用程序数据并刷新其显示的内容
1.系统资源专注在于用户交互的前台应用上
2.挂起的应用不会消耗任何CPU、磁盘和网络资源
3.不活动的应用对电池没有任何影响,它们是由系统挂起
4.应用之间能够快速切换
5.挂起的应用会保存在内存中
6.挂起应用中的所有线程都被挂起
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.如何恢复应用;