几个术语的理解:html
名称windows |
说明app |
Launchedide |
启动新程序的启动函数 |
Closedpost |
经过Back按键关闭程序this |
Deactivatedurl |
一个正在程序运行,此时按start键,程序停用,此后进入墓碑化spa |
Activated3d |
程序从墓碑化复活,即激活 |
生命周期的描述:当咱们在start页面运行一个程序A时,此时程序A进入启动(Launched)阶段,启动完成以后,程序通常会至关长的时间处于running状态,若是此时你按Back键,则直接进入Closed状态,还有就是在运行过程当中有突发事件,好比来电话,来信息,或者你须要运行程序B,你就按Start键,在按Start键的时候处于Deactivated状态,而后在运行程序B的过程当中,程序A一直处于Tombstoning墓碑化状态(除非你从Start页从新启用程序A的新实例),在操做程序B的过程当中你若是长按Back键,系统会调出卡片式任务管理器,里面就会包含程序A,程序B,Start页面,若是点击程序A,此时程序A就会被激活,进入运行状态,之至改程序被关闭,程序A的生命周期就完成了;
在App.xaml.cs文件中能够找到改变这几个状态时所触发的事件,事件里面有注解就不在详细说明了
效果:
那么下面的案例就是在用户关闭程序后,在从任务管理器中从新激活或者经过Back键返回到程序,进行数据的暂存;其实就是让用户感受不到程序已经关闭了,当用户程序回到程序时,和用户离开时呈现出来的相一致;
因为MainPage.xaml页面没有任何修改,因此没有贴出,MainPage隐藏文件代码:
从上面代码中能够看出咱们是把数据保存到App类中的一个公共属性中了,咱们在触摸事件中把自加的数值赋值于App公共属性appKey,在MainPage页面加载后调用OnNavigatedTo方法进行初始化,能够看出咱们把临时数据保存在App类中了,那么App类中是怎么实现的那;App类隐藏文件中添加的代码以下:
即保存数据的公共属性,其中咱们用到的两个方法,并把他们实现:
能够看到咱们是在用户遇到突发事件(如电话)时用PhoneApplicationService.Current.State进行存储的,并在用户经过任务管理器或者Back键时激活改程序,并用
;任务管理器的的效果图:PhoneApplicationService.Current.State.TryGetValue方法获取值,该方法的好处是不会报出异常信息
PhoneApplicationService.Current.State.TryGetValue方法获取值,该方法的好处是不会报出异常信息
windows phone 7 对多个应用程序的管理:windows phone 7 是经过栈对多个程序进行管理的,当咱们运行程序A的时候,若是咱们须要运行程序B,那么咱们会按Start键,Start键就会把程序A压入栈中(此时程序A是中止运行的),若是须要运行程序C,一样程序B也会被压入栈中,那么按Back键就会把当前程序C终止,并从栈中得到最后一个压入程序B,进行激活使用;