Windows Phone 7中的永久数据和瞬间状态

简介:

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

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

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

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

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

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

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

  

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

相关文章
|
开发工具 Windows
Windows平台RTMP推送|轻量级RTSP服务实现本地摄像头|屏幕|叠加数据预览
大家在做Windows平台RTMP推送或轻量级RTSP服务的时候,不管是采集屏幕还是采集摄像头,亦或屏幕摄像头的叠加模式,总会有这样的诉求,采集到的数据,希望能本地看看具体采集的数据或者图像实际效果,也就是本次介绍的“预览”功能。
239 0
|
Windows
『Consul』Consul数据持久化配置并且注册为Windows服务
📣读完这篇文章里你能收获到 - Consul数据持久化配置并且注册为Windows服务
1290 0
『Consul』Consul数据持久化配置并且注册为Windows服务
|
4月前
|
计算机视觉 Windows Python
windows下使用python + opencv读取含有中文路径的图片 和 把图片数据保存到含有中文的路径下
在Windows系统中,直接使用`cv2.imread()`和`cv2.imwrite()`处理含中文路径的图像文件时会遇到问题。读取时会返回空数据,保存时则无法正确保存至目标目录。为解决这些问题,可以使用`cv2.imdecode()`结合`np.fromfile()`来读取图像,并使用`cv2.imencode()`结合`tofile()`方法来保存图像至含中文的路径。这种方法有效避免了路径编码问题,确保图像处理流程顺畅进行。
369 1
|
消息中间件 安全 API
C#实现操作Windows窗口句柄:SendMessage/PostMessage发送系统消息、事件和数据【窗口句柄总结之二】
SendMessage/PostMessage API 可以实现发送系统消息,这些消息可以定义为常见的鼠标或键盘事件、数据的发送等各种系统操作......
5672 1
C#实现操作Windows窗口句柄:SendMessage/PostMessage发送系统消息、事件和数据【窗口句柄总结之二】
|
24天前
|
数据库 数据安全/隐私保护 Windows
Windows远程桌面出现CredSSP加密数据修正问题解决方案
【10月更文挑战第30天】本文介绍了两种解决Windows系统凭据分配问题的方法。方案一是通过组策略编辑器(gpedit.msc)启用“加密数据库修正”并将其保护级别设为“易受攻击”。方案二是通过注册表编辑器(regedit)在指定路径下创建或修改名为“AllowEncryptionOracle”的DWORD值,并将其数值设为2。
63 3
|
4月前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
131 1
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
4月前
|
Web App开发 存储 安全
微软警告数百万Windows用户:切勿冒险丢失所有数据
微软警告数百万Windows用户:切勿冒险丢失所有数据
微软警告数百万Windows用户:切勿冒险丢失所有数据
|
4月前
|
编解码 开发工具 C#
Windows电脑如何启动RTSP服务实现本地摄像头数据共享
本文介绍如何利用大牛直播SDK中的轻量级RTSP服务,在Windows平台上轻松采集摄像头数据并生成本地RTSP流。通过SDK提供的SmartPublisherDemo工具,用户能简便地选择摄像头、配置分辨率与帧率,并启动RTSP服务。此外,还支持音频采集、多端口服务以及动态水印等功能。生成的RTSP URL可用于其他终端拉流播放,无需额外部署服务器。该服务适配多种应用场景,如安防监控、电子教室等,并兼容Windows 7及以上版本。对于希望集成此功能的开发者,SDK提供了C++及C#接口,并支持多种编译模式。
129 0
|
7月前
|
Windows
如何使用Windows Media Player刻录数据DVD
Windows Media Player是微软Windows系统自带的多媒体播放器,支持多种音频、视频格式及图片查看,也能接收网络广播和刻录CD/DVD。用户可利用它管理媒体文件、创建播放列表。然而,其刻录DVD功能有限,仅适用于数据DVD。若需创建可在DVD播放机上播放的视频DVD,建议使用专业软件如DVDFab DVD Creator。
|
7月前
|
数据库 Windows
第五十章 使用 ^SystemPerformance 监视性能 - Microsoft Windows 平台的 InterSystems IRIS 性能数据报告
第五十章 使用 ^SystemPerformance 监视性能 - Microsoft Windows 平台的 InterSystems IRIS 性能数据报告
45 0