watchOS的人机界面指南 WatchKit编程指南 WWDC 2016 —设计出色的Apple Watch体验 WWDC 2016 — watchOS的新增功能 1.苹果框架:构建基块 1.1后台任务 WWDC 2016 —使您的手表应用程序保持最新 WWDC 2016 — watchOS上的性能架构 watchOS上的应用生命周期 watchOS上应用程序的默认状态not running 。 正在前台运行且屏幕打开的应用程序正在running 。 Dock中的应用程序和活动表面上具有复杂功能的应用程序处于suspended状态,已加载到内存中,可以快速恢复。 运行时未在监视屏幕上显示的应用程序(无论屏幕关闭还是其他应用程序或表面在前景中)都处于background状态,这是严格预算的, 实际上是我们的目标。 Apple提供了四个后台任务选项,watchOS可以将它们传递给扩展委托的handle(_ backgroundTasks: Set)方法: WKApplicationRefreshBackgroundTask是一种常规的后台任务类型,不适用于特定的刷新类型。 这种类型最常见的用例是安排其他任务。 在我们的应用程序中,它用于触发几乎所有工作:从CoreMotion请求加速度计数据,将其写入文件,然后开始将文件传输到手机端。 为了从watchOS接收此类任务,您应隐式请求它。 WKSnapshotRefreshBackgroundTask是一种任务类型,专门用于您的应用程序需要更新其快照(用作启动映像,如Dock中所示)时。 WatchOS会不时将任务分配给Dock中的每个应用程序,但也可以提出要求。 WKWatchConnectivityRefreshBackgroundTask是一种任务类型,用于当您通过WatchConnectivity框架将数据从iPhone传输到手表时。 我们目前不使用它。 WKURLSessionRefreshBackgroundTask是后台联网任务完成后分配给扩展委托的任务类型。 我们目前还没有使用它。 为了请求WKApplicationRefreshBackgroundTask : 2.1.3 SendSamplesOperationQueue SendSamplesOperationQueue责任是SendSamplesOperationQueue的创建和排队。 它跟踪成功和失败的操作,为将要选择的时间块重新填充新操作,具有自己的状态以防止使用外部的精确操作种类进行重新填充(例如,在ShortTasks中,我们希望允许从传感器请求数据只能在前4秒钟内执行操作,但只要我们没有任何限制,就可以创建以前准备发送的文件)。 将按以下优先级选择新操作的时间块: 如果连续尝试的次数少于numberOfRetriesIfFailedToSend ,则先前使用的时间戳和先前的文件传输失败。 如果队列的阶段允许,则使用以前使用的时间戳,但不准备发送文件(这意味着该应用在准备文件时被终止)。 如果队列的阶段允许,则将新时间戳计算为最新的先前时间戳+块持续时间 ,如果该时间早于块持续时间 ,则在其他情况下,将不会创建操作并且自我填充将停止,最后执行performWhenEverythingTransferred关闭。 2.1.4数据文件 […]