Windows Phone 8.1 生命周期

一、概述

WP8.1应用程序生命周期中有三个状态:Running(运行中),Suspended(挂起,暂停),NotRunning(终止)。如图所示


那么Suspended与NotRuning有什么不同呢? Suspended意味着当用户切换到另一个程序,你的应用程序很可能将被暂停一段时间,直到用户切换回您的应用程序。在此期间,应用程序处于休眠状态,换句话说,在你的应用程序中的代码不运行,但应用程序的对象和变量,包括框架和状态的BackStack保存在内存中。这允许用户快速并流体的应用程序之间切换。但是,手机的操作系统有可能将选择终止您的应用程序,这意味着系统将从内存中删除与应用程序的对象和变量。这意味着,下次用户启动应用程序,它不会有任何记忆的应用程序的状态,而是创建新的实例。

  什么情况下Phone会暂停应用程序,然后终止程序呢?多数发生在当系统需要应用程序占用的内存时。但如果手机耗尽电池或用户重新启动手机它也可能发生。您的应用程序被暂停或者挂起时,它可能在没有告知的情况下就终止了,进入NotRuning状态,所以我们需要在程序被暂停或者挂起,即Suspended之前,要迅速保存程序当前的状态(包括变量,对象等)。


二、使用

1. APP开发

WP8.1 APP开发过程中,就需要注意程序数据的保存。

需要运用技巧保存状态,下面是3种技巧。

(1)掌握SuspensionManager

(2)掌握Windows.Storage.ApplicationData.Current.LocalSettings

(3)掌握NavigationHelper

参考:http://www.cnblogs.com/NEIL-X/p/4147744.html

2. SDK开发

SDK开发过程可能需要关心的事情就没有那么多,捕获下面几个事件即可。

启动事件:

挂起事件(当程序处于退到后台时):


恢复事件(当程序回到前台):

激活事件(这个WP8的概念就不同了):


调试生命周期时,程序始终不进入断点,原来是禁用了。

When you are debugging, Windows disables these activation events. 

所以就需要在VS的工具栏中操作:



三、与WP8的异同

1. 生命周期状态有差异,并且8.1没有Close事件。

2. 当对生命周期调试时,WP8(2012)直接可以调; WP8.1(2013),是不会进入周期状态的,需要在VS工具栏上点击按钮来模拟。



参考:

1. http://stackoverflow.com/questions/28808037/why-the-onsuspending-event-was-not-called-on-my-wp8-1-store-app

2. https://msdn.microsoft.com/en-us/library/windows/apps/hh974425.aspx


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值