信息
您所需的主题如下所示。但此主题未包含在此库中。

应用数据存储

[ 本文适用于编写 Windows 运行时应用的 Windows 8.x 和 Windows Phone 8.x 开发人员。如果你要针对 Windows 10 进行开发,请参阅 最新文档 ]

应用数据是特定于具体应用的可变数据。它包含运行时状态、用户首选项和其他设置。应用数据可在应用运行时创建、读取、更新和删除。

我们建议 Windows 运行时应用使用应用数据存储来存储特定于每个应用和用户的设置和文件。系统管理应用的数据存储,确保它们保持与其他应用和其他用户隔离。系统还在用户向应用安装更新时保留这些数据存储的内容,在应用卸载时完全且干净地删除这些数据存储的内容。

应用程序数据示例显示如何使用 Windows 运行时应用数据 API 来存储和检索特定于每个用户和 Windows 运行时应用的数据。

有关应用数据的重要说明:  应用数据的生命周期与应用的生命周期相关联。如果应用被删除,则会丢失所有应用数据。不要使用应用数据存储用户数据或用户可能作为有价值和不可替代内容的任何数据。我们建议使用用户的库和 OneDrive 存储此类信息。应用数据非常适合存储特定于应用的用户首选项、设置和收藏。

应用数据存储

当安装应用时,系统会为设置和文件等应用数据提供它自己的每用户数据存储。你不需要知道这些数据位于何处或如何存储,因为系统会负责管理物理存储工作。只需使用应用数据 API,它简化了应用数据的使用。

以下是一些数据存储:

本地

当前设备上存在的数据将在云中备份。

漫游

存在于用户安装了该应用的所有设备上的数据。

临时

可由系统在任何时刻删除的数据。

localcache

仅存在于当前设备上的持久数据。

如果应用被删除,这些数据存储也会删除。

也可以对应用的应用数据进行版本控制。这将使你能够创建应用的未来版本,更改它的应用数据的格式,而不会导致与以前应用版本出现兼容性问题。应用检查数据存储中的应用数据版本,如果该版本低于应用想要的版本,应用应该将应用数据更新为新格式并更新该版本。有关详细信息,请参阅 Application.Version 属性和 ApplicationData.SetVersionAsync 方法。

应用设置

应用数据存储中的设置存储在注册表中。当使用应用数据 API 时,注册表访问是透明的。在它的应用数据存储内,每个应用拥有设置的根容器。应用可向根容器添加设置和新容器。创建新容器可帮助你组织各种设置。请注意,容器最多可嵌套 32 层深,树的宽度没有限制。

使用复合设置可轻松处理相互依赖的设置的原子更新。系统会在并发访问和漫游时确保复合设置的完整性。复合设置针对少量数据进行了优化,如果将它们用于大型数据集,性能可能很差。

应用设置可以是本地的或漫游的。应用添加到本地数据存储的设置仅存在于本地设备上。系统会在用户安装了应用的所有设备上自动同步应用向漫游数据存储添加的设置。

应用设置支持大多数 Windows 运行时数据类型

请注意,没有二元类型。如果需要存储二元数据,可使用应用文件。

你不能将其他类型的对象直接分配给应用数据。你可将数据序列化为一种受支持的数据类型,例如可将数据序列化为 JSON,并将其作为字符串存储,但需要处理序列化。

系统可确保写入的数据大小与该数据类型的大小匹配。系统不会验证数据的有效性,所以你必须检查数据在写入和读回的时间间隔内是否已更改。

应用文件

应用数据存储中的文件存储在文件系统中。应用使用应用数据存储中的文件,就像使用 Windows 7 中用户配置文件的 AppData 部分中的文件一样。在每个应用的应用数据存储中,该应用拥有系统定义的根目录:一个用于本地文件,一个用于漫游文件,还有一个用于临时文件。你的应用可向根目录添加新文件和新目录。创建新目录可帮助你组织你的文件。请注意,应用数据存储中的文件最多可嵌套 32 层深,树的宽度没有限制。

应用文件可以是本地的或漫游的。应用添加到本地数据存储的文件仅存在于本地设备上。系统会在用户安装了应用的所有设备上自动同步应用向漫游数据存储添加的文件。

本地应用数据

本地应用数据应用于需要在应用会话之间予以保留但其类型或大小不适合于漫游应用数据的任何信息。不适用于其他设备的数据也应存储在此处。所存储的本地数据没有总大小限制。 位置通过 localFolder 属性提供。 使用本地应用数据存储来存储对漫游没有用的数据和大型数据集。

有关示例代码,请参阅:

漫游应用数据

如果在应用中使用漫游数据,用户可轻松地在多个设备之间保持应用的应用数据同步。如果用户在多个设备上安装了你的应用,操作系统将保持应用数据同步,减少用户需要在他们的第二个设备上为你的应用所做的设置工作量。漫游还支持用户甚至在不同的设备上从他们离开的位置继续执行任务,例如撰写列表。OS 在漫游数据更新时将它复制到云,并将该数据同步到已安装应用的其他设备。

操作系统限制了每个应用可漫游的应用数据大小。 请参阅 ApplicationData.RoamingStorageQuota | roamingStorageQuota。如果应用达到这一限制,在应用的总漫游应用数据再次少于该限制之前,不会将应用的任何应用数据复制到云。出于此原因,最好的做法是仅为用户首选项、链接和小型数据文件使用漫游数据。

通常,应用不希望更改它的数据。但是,漫游应用数据随时可能更改。应用应该注册处理 DataChanged | datachanged 事件,处理操作在漫游应用数据更改时执行。

如果由于用户安装了一个较新的应用版本,设备上的应用数据更新到一个新版本,则它的应用数据将被复制到云。在设备上更新应用之前,系统不会将应用数据更新到用户安装了该应用的其他设备。

只要用户可在所需的时间间隔内从某个设备访问应用的漫游数据,这些数据就存在于云中。如果用户不会在比此时间间隔更长的时间内运行应用,它的漫游数据将从云中删除。如果用户卸载应用,它的漫游数据不会自动从云中删除,将会保留。如果用户在该时间间隔内重新安装该应用,会从云中同步漫游数据。当前的策略将此时间间隔指定为 30 天。 位置通过 roamingFolder 属性提供。

操作系统会随机漫游应用数据,不会保证即时同步。如果用户脱机或位于高延迟网络中,则漫游可能会明显延迟。对于时间关键的重要设置,可使用优先级特别高的设置单位提供更为频繁的更新。它仅限于名称为“HighPriority”的一个特定设置单位。它可以是复合体,但总大小限于 8KB。此限值不是强制性的,当超过此限值时,设置单位或设置复合体将被视为常规设置单位或复合体。

有关示例代码,请参阅:

有关指南,请参阅漫游应用数据指南

临时应用数据

临时应用数据存储类似于缓存。它的文件不会漫游,随时可以删除。系统维护任务可以随时自动删除存储在此位置的数据。用户还可以使用“磁盘清理”清除临时数据存储中的文件。 临时应用数据可用于存储应用会话期间的临时信息。无法保证超出应用会话结束时间后仍将保留此数据,因为如有需要,系统可能回收已使用的空间。 位置通过 temporaryFolder 属性提供。

有关示例代码,请参阅:

应用数据编程接口

相关主题

指南
漫游应用数据指南
应用设置指南
示例
应用设置示例
应用数据示例

 

 

显示: