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ę naDynamicString
za pomocąformat()
.DynamicDuration
umożliwia wyodrębnianie konkretnych części, takich jak sekundy czasu trwania, w postaci obiektówDynamicInt32
.
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:
- Operacja
plus()
. - Operacja
animate()
. - Wyrażenie
constant(1)
. - Wyrażenie
constant(2)
założone przez wartość2
w wyrażeniu dynamicznymplus()
.
DynamicInt32.constant(1).plus(2).animate()