zoukankan      html  css  js  c++  java
  • 也谈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,数据存储还有什么更高效的方法吗?

  • 相关阅读:
    使用jQuery修改动态修改超链接
    360安全检测出的WordPress漏洞的修复方法
    jQuery未定义错误原因(jQuery is not define)
    MySQL授权命令grant的使用方法
    .htaccess伪静态(URL重写)绑定域名到子目录实现子站点
    Ubuntu14.04配置3389远程桌面连接
    [20190531]ORA-600 kokasgi1故障模拟与恢复.txt
    [20190531]建立job与commit.txt
    [20190530]ORACLE 18c
    [20190530]oracle Audit文件管理.txt
  • 原文地址:https://www.cnblogs.com/jwchen08/p/2242548.html
Copyright © 2011-2022 走看看