Ios transferUserInfo可以生成多少个队列

Ios transferUserInfo可以生成多少个队列,ios,watchos-2,watchos,watchconnectivity,wcsession,Ios,Watchos 2,Watchos,Watchconnectivity,Wcsession,我正在使用transferUserInfo向手表发送统计数据 当手表处于休眠或空转状态(显示时钟)且手机应用程序正在运行时,会有许多信息被传输(由重复计时器触发) 应用程序可以发送多少个“userinfo”队列?是否有限制?只有一个队列(由系统提供) 我不知道您可以添加到队列中的transferUserInfo消息的数量有任何限制 但是,您应该考虑两件事: 虽然iOS将发送消息并能够清空其队列,但这些已发送(尚未处理)的消息将由watchOS保留,直到您的应用程序能够接收它们。在某些情况下,手

我正在使用
transferUserInfo
向手表发送统计数据

当手表处于休眠或空转状态(显示时钟)且手机应用程序正在运行时,会有许多信息被传输(由重复计时器触发)

应用程序可以发送多少个“userinfo”队列?是否有限制?

只有一个队列(由系统提供)

我不知道您可以添加到队列中的
transferUserInfo
消息的数量有任何限制

但是,您应该考虑两件事:

  • 虽然iOS将发送消息并能够清空其队列,但这些已发送(尚未处理)的消息将由watchOS保留,直到您的应用程序能够接收它们。在某些情况下,手表可能无法为您的应用程序保存更多消息

    虽然我不知道苹果是如何处理这种情况的,但你应该计划好传输可能会失败,或者更糟的是,被丢弃

    不要试图绕过某个特定系统的限制来设计你的应用程序,因为它会很脆弱和崩溃,特别是如果你没有处理可能出现的情况的应急措施的话

  • 如果你希望在一段(短)时间内不断发送(大量)消息,这在内存或能源使用方面肯定是不高效的

    你应该遵循苹果的做法,创造积极的用户体验。如果你的应用程序导致手机和/或手表的电池寿命变差,用户将停止使用它

更好的方法 以下是避免手机和手表之间聊天的几种替代方法:

  • 使用另一种方法,例如
    updateApplicationContext
    ,这样手机和手表只需处理单个上下文,而不需要单独处理一长串消息

  • 维护手机上的统计信息;避免转移当前统计数据,直到手表请求/需要它们。(这对于watchOS 3来说是一个很好的方法,因为你的应用程序可以在用户启动之前在后台更新)

  • 批处理数据以随时间发送较少的更新

    • 如果你没有更新复杂的应用程序,不要计划每小时更新一次以上的非活动应用程序
    • 如果你正在更新一个并发症,绝对不要计划每小时更新超过4次(但最好不要超过每小时一次)
同样,不要针对任何特定的数字。一般来说,更新频率越低越好

无论您选择哪种方法,请确保您的应用程序是健壮的,并且可以处理任何类型的故障,包括被系统终止(例如过度使用内存或过度使用后台CPU)

更多信息 这两个watchOS会话专门讨论何时、为什么以及如何更新手表,并提及围绕特定用途安排更新。例如,如果公交系统没有运行,不要整夜更新公交信息

  • 一个很好的介绍,解释什么时候以及为什么要更新你的手表应用,包括在

  • 具体而言,本课程涵盖了使您的复杂度、应用程序和停靠快照保持最新所需的所有知识

只有一个队列(由系统提供)

我不知道您可以添加到队列中的
transferUserInfo
消息的数量有任何限制

但是,您应该考虑两件事:

  • 虽然iOS将发送消息并能够清空其队列,但这些已发送(尚未处理)的消息将由watchOS保留,直到您的应用程序能够接收它们。在某些情况下,手表可能无法为您的应用程序保存更多消息

    虽然我不知道苹果是如何处理这种情况的,但你应该计划好传输可能会失败,或者更糟的是,被丢弃

    不要试图绕过某个特定系统的限制来设计你的应用程序,因为它会很脆弱和崩溃,特别是如果你没有处理可能出现的情况的应急措施的话

  • 如果你希望在一段(短)时间内不断发送(大量)消息,这在内存或能源使用方面肯定是不高效的

    你应该遵循苹果的做法,创造积极的用户体验。如果你的应用程序导致手机和/或手表的电池寿命变差,用户将停止使用它

更好的方法 以下是避免手机和手表之间聊天的几种替代方法:

  • 使用另一种方法,例如
    updateApplicationContext
    ,这样手机和手表只需处理单个上下文,而不需要单独处理一长串消息

  • 维护手机上的统计信息;避免转移当前统计数据,直到手表请求/需要它们。(这对于watchOS 3来说是一个很好的方法,因为你的应用程序可以在用户启动之前在后台更新)

  • 批处理数据以随时间发送较少的更新

    • 如果你没有更新复杂的应用程序,不要计划每小时更新一次以上的非活动应用程序
    • 如果你正在更新一个并发症,绝对不要计划每小时更新超过4次(但最好不要超过每小时一次)
同样,不要针对任何特定的数字。一般来说,更新频率越低越好

无论您选择哪种方法,请确保您的应用程序是健壮的,并且可以处理任何类型的故障,包括被系统终止(例如过度使用内存或过度使用后台CPU)

更多信息 这两个watchOS课程专门讨论何时、为什么以及如何更新手表,并提到了计划更新