Wyrażenia dynamiczne w Wear OS

Wear OS obsługuje dynamiczne aktualizacje informacji wyświetlanych w kafelkach i widżetach.

Korzystając z wyrażeń dynamicznych, możesz powiązać dane, które pojawiają się na powierzchni aplikacji (np. kafelek lub widżet), z konkretnym źródłem danych. Przykładem takiego źródła danych są dane o tętnie, które platforma może odczytać. Gdy zdefiniujesz to powiązanie, system automatycznie zaktualizuje dane w kafelkach i widżetach.

Tworzenie dynamicznych powiązań danych

Aby utworzyć dynamiczne wiązanie danych, zdefiniuj zmienną korzystającą z dynamicznego typu danych. Powiąż tę zmienną ze strumieniem danych, którego chcesz użyć.

Możesz na przykład pobrać wartości związane z zegarem systemowym i informacjami o stanie, jak pokazano poniżej.

Kotlin

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

Java

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

Możesz też tworzyć wartości dynamiczne na podstawie wyrażeń stałych i wykonywać operacje arytmetyczne na dowolnej wartości dynamicznej, jak pokazano w tym fragmencie:

Kotlin

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

Java

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

Lista możliwych typów danych dynamicznych

Wear OS obsługuje te typy danych dynamicznych:

Dodatkowo możesz przekształcać typ danych za pomocą wbudowanych funkcji, takich jak:

  • DynamicInt32 obsługuje konwersję na DynamicString za pomocą format().
  • DynamicDuration umożliwia wyodrębnianie konkretnych części, takich jak sekundy czasu trwania, w postaci obiektów DynamicInt32.

Używaj ograniczonej liczby wyrażeń dynamicznych na każdym ekranie

System ma ograniczoną liczbę wyrażeń dynamicznych, które może przetwarzać jednocześnie na określonym ekranie. System konwertuje wszystkie dodatkowe wyrażenia dynamiczne na wartości statyczne.

Wear OS uznaje też wyrażenia stałe za wyrażenia dynamiczne. Na przykład ten fragment kodu zawiera 4 wyrażenia dynamiczne:

  1. Operacja plus().
  2. Operacja animate().
  3. Wyrażenie constant(1).
  4. Wyrażenie constant(2) założone przez wartość 2 w wyrażeniu dynamicznym plus().
DynamicInt32.constant(1).plus(2).animate()