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,数据存储还有什么更高效的方法吗?

  • 相关阅读:
    DateTimeHelper
    Check F5 refresh submit post back repeatly
    GZip Compress SoapExtension
    WebBrowser 高级扩展 js扩展 js订阅C#事件
    DataSet GZip/Deflate Serializer
    Socket/Stream Data Helper
    历年评书出版一览表(1955~1994)
    c#检测字节流编码
    Execute SQL Server Store Procedure C# ADO.Net Wrapper Code Generator
    Directory File Disk Searcher
  • 原文地址:https://www.cnblogs.com/jwchen08/p/2242548.html
Copyright © 2011-2022 走看看