Wear OS中的动态表达式

Wear OS 支持对显示在磁贴复杂功能中的信息进行动态更新。

使用动态表达式,您可以将显示在应用界面(例如磁贴或复杂功能)上的数据绑定到特定的数据源。此类数据源的一个示例是平台可以读取的心率数据。建立此绑定后,系统会自动更新磁贴和复杂功能中的数据。

创建动态数据绑定

要创建动态数据绑定,请定义一个使用动态数据类型的变量。将此变量与您要使用的数据流关联。

例如,您可以获取与系统时钟和健康信息相关的值,如下面的代码片段所示。

Kotlin

val systemTime = DynamicInstant.platformTimeWithSecondsPrecision()
val steps: DynamicInt32 = PlatformHealthSources.dailySteps()

Java

DynamicInstant systemTime = DynamicInstant.platformTimeWithSecondsPrecision();
DynamicInt32 steps = PlatformHealthSources.dailySteps();

您还可以从常量表达式创建动态值,并在任何动态值上执行算术运算,如下面的代码片段所示

Kotlin

val dynamicValue = DynamicInt32.constant(1).plus(2)

Java

DynamicInt32 dynamicValue = DynamicInt32.constant(1).plus(2)

可能的动态数据类型列表

Wear OS 支持以下动态数据类型

此外,您可以使用内置功能(例如以下功能)转换数据类型

  • DynamicInt32 支持转换为 DynamicString,可以使用 format()
  • DynamicDuration 允许您提取特定部分,例如持续时间的秒部分,作为 DynamicInt32 对象。

每个屏幕上使用有限数量的动态表达式

系统对特定屏幕上可以同时处理的动态表达式的数量有限制。系统会将任何额外的动态表达式转换为静态值。

Wear OS 也将常量表达式视为动态表达式。例如,以下代码片段包含 4 个动态表达式

  1. plus() 操作。
  2. animate() 操作。
  3. constant(1) 表达式。
  4. constant(2) 表达式,它由 plus() 动态表达式中的值 2 隐含。
DynamicInt32.constant(1).plus(2).animate()