• 也谈Windows Phone 7的生命周期


         刚开始学习Windows Phone 7开发不久,所以还有很多问题不太明白,不过Windows Phone 7是一个很有前途的平台,值得学习。WP7升级Mango也有一段时间了,Mango增加了多任务处理,不过程序的生命周期看起来没有多大变化。一个普通的程序通常经过四个阶段Launching-程序第一次启动,Closing-程序真正推出,Deactivated-程序被冻结放到后台,Activated-程序被重新激活,需要注意的是这四个状态是互斥的,程序不会同时处于其中两个状态。这些状态对应的函数分别为App.xaml.cs中的Application_Launching,Application_Activated,Application_Deactivated,Application_Closing,知道这些状态主要就是为了解决数据独立存储的问题。如果程序很简单,只有一个Page,那么数据存储很容易,只要在OnNavigatedTo()和OnNavigatedFrom()中进行存储就行了。但是当程序有很多个Page时,就需要在更高级别上进行存储。

        首先在Application_Launching时进行数据读取,这个应该没有问题。那么什么时候存储数据呢?这看起来有两个选择,Application_Deactivated和Applica_Closing,我当初想的是,一个程序最终总会被关闭的,那么只需要在Closing中进行存储就行,但是后来发现,如果程序在后台运行,这时再从程序列表启动程序时,那么原来的程序并没有经过Closing事件。然后我改为在Deactivated中存储数据,但是如果程序在运行时按"Back"直接退出,那么是不会经过Deactivated的,所以这样也不行。最后,我采用的办法是在Deactivated和Closing中都进行数据存储,这样就把问题解决了。

        总结起来,WP7的生命周期还是很好理解的,也很有效率,能够保障系统的流畅运行。高手遍地的cnblogs,数据存储还有什么更高效的方法吗?

  • 相关阅读:
    ssm整合之配置applicationContext-service.xml
    ssm整合之配置applicationContext-dao.xml
    ssm整合之mybatis配置文件SqlMapConfig.xml
    ssm整合之导包
    java BigDecimal工具类
    java中json依赖包
    Servlet+Json代码
    xstream+dom4j比较对象
    分析堆栈跟踪元素
    myeclipse搭建activemq 简单聊天
  • 原文地址:https://www.cnblogs.com/jwchen08/p/2242548.html
Copyright © 2020-2023  润新知