WP谈开发(1)必谈之生命周期

学习windows phone,首先生命周期是必谈的。与其说生命周期还不如说是程序的运行过程。说生命周期总让人觉得很高深的样子。就像以前我学ASP.NET的时候老师说生命周期,说明白生命周期就可以在HTTP请求管道注册事件之类的,让我总觉得很深奥。但是后来老师花了30分钟把那19个还是多少个事件说了一下之后让我感觉很失望。

对于人来说,生命周期就是生老病死了。说重要是因为它确实很重要,但是也不要怕很深奥。

首先我们建一个silverligh for windows phone项目,打开app.xaml文件。

会看到四个事件:

1Application_Launching代表程序开始运行的时候。例如我们需要在程序运行还没进入到页面的时候检测版本号,像服务器发送数据,或者是记录下时间等等。那我们就可以在这里进行处理。

2Application_Closing表示程序关闭。假如我们需要在程序关闭的时候存下当前时间,以计算用户这次打开软件到退出软件一共多少时间,然后发送到服务器。就像qq,当程序关闭的时候会像服务器发送数据表示我要下线。

3Application_Deactivated这个事件我们一般说是应用程序进入墓碑了。例如我们玩着qq突然接了个电话,或者是我们返回到了桌面,或者是进入必应搜索。那么现在程序就被树立了墓碑。

那么墓碑到底是怎么回事 ,因为windows phone不支持多任务,所以就想出了这一招,当你程序被树立墓碑的时候,windows phone执行模型会将你当前应用程序的数据都记录下来,放到内存当中。但是这些也不是一直会存在内存当中。你想象一下 你开了个微博,退到桌面,再打开qq再退到桌面,再打开...,那么内存肯定就受不了了。追求性能的微软肯定不会让你这么做。智能设备同时只能管理五个最新的墓碑信息,但是当系统检测到设备运行的资源不足的时候也会去清理内存 。所以,我们需要在程序进入墓碑机制的时候保存一些信息,例如记录下时间保存到独立存储中。页面数据在页面的OnNavigatedFrom(离开页面时出发,因为当程序被树立墓碑的时候会触发这个事件。)事件中进行保存,例如当前文本框的值。

4Application_Activated应用程序被激活。当我们玩qq的时候点开始按钮,那么就被树立墓碑,我们再按下后退键就会进入到qq,这个时候应用程序就被激活。那么我们就可以恢复我们刚刚保存下来的数据。我们可以在这个事件中把时间读出来。那页面的数据就在OnNavigatedFrom(进入页面时出发)这个事件中读取出来。

OnNavigatedFrom和OnNavigatedFrom这2个时间都在页面的构造函数之后。

 

510秒钟原则。在保存所有应用程序数据和页面导航事件时,有一个10秒钟限制。如果保存时间超出10秒,应用程序将被强制终止。为此,软件设计时应考虑在整个生命周期中随时保存重要的数据,避免在关闭事件中处理大量的文件I/O操作。

腾讯微博:http://t.qq.com/liaopanpan90

posted @ 2012-06-16 00:59  农村山沟沟出来的大学生  阅读(365)  评论(0编辑  收藏  举报