漫游应用数据指南

Applies to Windows and Windows Phone

当你使用漫游 ApplicationData API 存储应用数据时,Windows 会将该数据复制到云并将数据同步到安装了该应用的所有其他用户设备。当你将 Windows 应用商店应用设计为包含漫游应用数据时,请遵循以下指南。

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

我的应用应该使用漫游数据吗?

使用漫游数据存储用户的设置、首选项和会话信息,以在多台设备上创建一致的应用体验。请牢记,漫游数据与用户的 Microsoft 帐户相关联。仅当用户使用相同 Microsoft 帐户登录到设备并在多台设备上安装了应用时,漫游数据才会同步。

例如,如果用户在一台设备上安装你的应用后又在另一台设备上进行了安装,第一台设备上设置的所有首选项将自动应用到第二台设备上的应用(假定用户使用相同的 Microsoft 帐户登录这两台设备)。任何对这些设置和首选项进行的进一步更改也将自动转换,这排除设备的因素提供了统一的体验。通过将会话信息存储为漫游数据,你将使用户可以在转移到另一台设备时继续已在一台设备上关闭或放弃的应用会话。

注意  未在 Windows Phone 上实现 RoamingSettingsRoamingFolderRoamingStorageQuota 属性。

注意  此类文件即使被置于 RoamingFolder 中也不漫游:

  • 行为类似于文件夹的文件类型(例如扩展名为 .zip 和 .cab 的文件)
  • 名称开头带空格的文件
  • 名称中包含以下 Unicode 字符的文件 :

    e794、e795、e796、e7c7、e816、e817、e818、e81e、e826、e82b、e82c、e831、e832、e83b、e843、e854、e855、e864、e7e2、e7e3 和 e7f3

  • 长度不超过 256 个字符的文件路径(文件名 + 扩展名)
  • 空文件夹
  • 带有打开句柄的文件

应做事项和禁止事项

  • 将漫游用于用户首选项和自定义、链接以及小型数据文件。例如,使用漫游在所有设备上保留用户的背景颜色首选项。
  • 使用漫游以允许用户跨设备继续执行任务。例如,诸如草稿电子邮件的内容或阅读器应用中最近查看的页面的漫游应用数据。
  • 通过更新应用数据处理 DataChanged 事件。当应用数据从云中完成同步时,会发生该事件。
  • 漫游会引用内容而不是原始数据。例如,会漫游 URL 而不是联机文章的内容。
  • 对于重要的对时间敏感的设置,使用与 RoamingSettings 相关联的 HighPriority 设置。有关详细信息,请参阅应用数据的简要概述。要查看代码示例,请参阅 Quickstart: Roaming app data (Windows Store apps using JavaScript and HTML)Quickstart: Roaming app data (Windows Store apps using C#/VB/C++ and XAML)应用程序数据示例
  • 不要漫游特定于设备的应用数据。某些信息仅在本地才合理,例如指向本地文件资源的路径名。如果你决定漫游本地信息,请确保信息在第二台设备上无效时该应用可以进行恢复。
  • 不要漫游较大的应用数据集。应用可以漫游的应用数据量存在限制;使用 RoamingStorageQuota 属性获取这个最大值。 如果应用达到该上限,在应用数据存储的大小不再超过该限制之前,不能漫游任何数据。在你设计应用时,必须考虑如何为较大数据设置一个限制以免超过此限值。例如,如果每保存一个游戏状态需要 10KB,则应用可能仅允许用户最多储存 10 个游戏。
  • 不要为依赖即时同步的数据使用漫游。Windows 不保证实现即时同步;如果用户脱机或在严重延迟的网络上,漫游可能会大大延迟。请确保你的 UI 不依赖即时同步。
  • 不要使用漫游频繁更改数据。例如,如果你的应用跟踪频繁更改信息(例如歌曲中每秒的进度位置),则不要将此类信息存储为漫游应用数据。相反,选取较不频繁但仍提供良好用户体验的表示形式,例如当前播放的歌曲。

其他使用指南

漫游先决条件

如果用户使用 Microsoft 帐户登录相应的设备,则任何用户都可以享受到漫游应用数据的益处。但是,用户和组策略管理员可以随时在设备上关闭漫游应用数据。 如果用户选择不使用 Microsoft 帐户或者禁用漫游数据功能,她仍可以使用你的应用,但应用数据都将留在每台设备本地。

PasswordVault 中存储的数据仅将在用户使设备成为“受信任”设备的情况下传输。如果设备不受信任,则不会漫游在该保管库中安全存储的数据。

冲突解决

漫游应用数据不适合在多个设备上同时使用。 如果在同步期间由于两台设备的特定数据单位已更改而导致冲突,系统将始终倾向于最后写入的值。这将确保应用使用的是最新信息。 如果该数据单元是一个设置组合,则还会在设置单元级别解决冲突,这意味着具有最新更改的组合将被同步。

何时写入数据

数据应在不同时间写入,具体取决于设置的预期生命周期。更改较少且较慢的应用数据应立即写入。 然而,更改频繁的应用数据应仅以固定间隔(例如每 5 分钟一次)定期写入,以及在应用挂起时写入。 例如,开始播放新歌曲时,音乐应用就可立即写入“当前歌曲”设置,不过,歌曲中的实际位置则仅应在应用挂起时写入。

过度使用保护

系统具有各种保护机制,以避免资源使用不当。如果应用数据没有如期传输,可能是因为设备暂时受限。等待一段时间,系统通常可以自动解决此情况,无需进行任何操作。

版本控制

应用数据可利用版本控制功能,从一个数据结构升级至另一数据结构。此版本编号不同于应用版本,可随意设置。虽不强制遵循,但强烈建议你使用递增的版本编号,因为如果你尝试向表示更新数据的较低数据版本编号传输,可能发生不良的并发情况(包括数据丢失)。

应用数据仅在版本编号相同的已安装应用之间漫游。例如,版本 2 的设备彼此之间可传输数据,版本 3 的设备同样如此,但运行版本 2 和版本 3 的设备之间不能进行漫游。 如果你安装了在其他设备上使用各种版本编号的新应用,新安装的应用将同步与最高版本编号相关联的应用数据。

测试和工具

开发人员可锁定自己的设备,以触发漫游应用数据的同步。 如果应用数据看起来没有在特定时段进行传输,请检查以下项目并确保:

  • 你的漫游数据未超过最大大小(有关详细信息,请参阅 RoamingStorageQuota)。
  • 你的文件已关闭且发布正确。
  • 至少存在两台运行相同版本应用的设备。

开发人员可使用 Windows 8 漫游监视器来监视和影响应用的漫游状态。

在 Windows 应用商店应用和 Windows Phone 应用商店应用之间漫游数据

如果你发布两个版本的应用(一个版本适用于 Windows 应用商店,另一个版本适用于 Windows Phone),你可以在两种不同类型的设备上运行的应用上漫游应用数据。要在不同类型的设备的不同版本的应用上漫游数据,请为每个版本的应用分派相同的程序包系列名称 (PFN)。

有关详细信息,请参阅如何在 Windows 应用商店应用和 Windows Phone 应用商店应用之间漫游数据

相关主题

对于开发人员 (HTML)
应用数据概述
快速入门:漫游应用程序数据
Windows.Storage.ApplicationData
Windows.Storage.ApplicationData.RoamingSettings
Windows.Storage.ApplicationData.RoamingFolder
Windows.Storage.ApplicationData.RoamingStorageQuota
Windows.Storage.ApplicationDataCompositeValue
对于开发人员 (XAML)
应用数据概述
快速入门:漫游应用程序数据 (C#/VB/C++)
Windows.Storage.ApplicationData
Windows.Storage.ApplicationData.RoamingSettings
Windows.Storage.ApplicationData.RoamingFolder
Windows.Storage.ApplicationData.RoamingStorageQuota
Windows.Storage.ApplicationDataCompositeValue
示例
应用数据示例

 

 

显示:
© 2014 Microsoft