博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows Phone 7中的永久数据和瞬间状态
阅读量:6278 次
发布时间:2019-06-22

本文共 890 字,大约阅读时间需要 2 分钟。

Windows Phone 7中应用程序被雪藏的时候,他的两类信息必须由开发者恰当处理,他们分别是永久数据和瞬间状态。

永久数据(Persistent data)是一个应用程序的所有实例共享数据,应该被保存在独立外存(Isolated Storage)中。例如应用程序的环境设置和游戏程序的闯关进度都是典型的永久数据。

瞬间状态(Transient state)是一个应用程序的某个实例独自使用的数据,应该被保存在内存中。例如应用程序查询Web服务得到的返回值和电子书的当前位置是典型的瞬间状态。

这两类信息的存储、装载机制完全及其由此造成的用户体验不同。

保存永久数据的独立外存是手机硬盘上为文件存储专设的区域。独立外存非常有用,因为它可以永久地保存任意实例改变过的应用程序信息。使用独立外存的弱点是载入时间可长达若干秒。如果应用程序在启动时就试图载入大量永久数据,则启动过程需要很长的时间完成,这将造成极差的用户体验。极端情况下,如果应用程序装载过程超过10秒,操作系统还会终止该程序。

瞬间状态可被开发者保存到Microsoft.Phone.Shell命名空间下类的成员属性中。当应用程序被雪藏时,State中的瞬间状态被操作系统保存到内存。当雪藏的应用程序复苏时,操作系统会将State中的内容恢复到雪藏前的瞬间状态。State的内容一直被保存在内存中,所以其存取速度比存取独立外存中的永久数据快得多。然而State中的瞬间状态只在应用程序雪藏时才有效。一旦雪藏的应用程序被关闭或其新实例被启动,State中将不再包含任何数据。如果雪藏的应用程序占用了系统需要的资源,则这个雪藏的应用程序会被关闭,State中保存的瞬间状态也被释放。

根据永久数据和瞬间状态的特点,开发者可以采用恰当的策略和选择适当的时机,对他们进行保存和装载。比如存取永久数据应该采用增量方式,避免一次性的保存和装载。而存取瞬间状态则应在雪藏和复苏时及时进行。

  

本文转自 51CTO博客,原文链接:http://blog.51cto.com/felixyan/489130,如需转载请自行联系原作者

你可能感兴趣的文章
pitfall override private method
查看>>
!important 和 * ----hack
查看>>
聊天界面图文混排
查看>>
控件的拖动
查看>>
svn eclipse unable to load default svn client的解决办法
查看>>
Android.mk 文件语法详解
查看>>
QT liunx 工具下载
查看>>
内核源码树
查看>>
Java 5 特性 Instrumentation 实践
查看>>
AppScan使用
查看>>
Java NIO框架Netty教程(三) 字符串消息收发(转)
查看>>
Ucenter 会员同步登录通讯原理
查看>>
php--------获取当前时间、时间戳
查看>>
Spring MVC中文文档翻译发布
查看>>
docker centos环境部署tomcat
查看>>
JavaScript 基础(九): 条件 语句
查看>>
Linux系统固定IP配置
查看>>
配置Quartz
查看>>
Linux 线程实现机制分析
查看>>
继承自ActionBarActivity的activity的activity theme问题
查看>>