Wear OS'teki dinamik ifadeler

Wear OS, kartlarınızda ve komplikasyonlarınızda görünen bilgilerle ilgili dinamik güncellemeleri destekler.

Dinamik ifadeleri kullanarak uygulamanızın bir yüzeyinde (ör. kutu veya özellik) görünen verileri belirli bir veri kaynağına bağlayabilirsiniz. Platformun okuyabileceği nabız verileri bu tür bir veri kaynağına örnek olarak verilebilir. Bu bağlamayı oluşturduktan sonra sistem, bloklarınızdaki ve özelliklerinizdeki verileri otomatik olarak günceller.

Dinamik veri bağlamaları oluşturma

Dinamik veri bağlama oluşturmak için dinamik veri türü kullanan bir değişken tanımlayın. Bu değişkeni, kullanmak istediğiniz veri akışıyla ilişkilendirin.

Örneğin, aşağıdaki kod snippet'inde gösterildiği gibi sistem saati ve durum bilgileriyle ilgili değerleri alabilirsiniz.

Kotlin

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

Java

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

Ayrıca, aşağıdaki snippet'te gösterildiği gibi sabit ifadelerden dinamik değerler oluşturabilir ve herhangi bir dinamik değer üzerinde aritmetik işlemler yapabilirsiniz:

Kotlin

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

Java

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

Olası dinamik veri türlerinin listesi

Wear OS aşağıdaki dinamik veri türlerini destekler:

Ayrıca, aşağıdakiler gibi yerleşik özellikleri kullanarak veri türünü dönüştürebilirsiniz:

  • DynamicInt32, format() kullanılarak DynamicString biçimine dönüştürmeyi destekler.
  • DynamicDuration, sürenin saniye bölümü gibi belirli bölümleri (DynamicInt32 nesneleri) çıkarmanıza olanak tanır.

Her ekranda sınırlı sayıda dinamik ifade kullanın

Sistemin belirli bir ekranda eş zamanlı olarak işleyebileceği dinamik ifade sayısı sınırlaması vardır. Sistem, ek dinamik ifadeleri statik değerlere dönüştürür.

Wear OS, sabit ifadeleri de dinamik ifadeler olarak kabul eder. Örneğin, aşağıdaki kod snippet'i 4 dinamik ifade içerir:

  1. plus() işlemi.
  2. animate() işlemi.
  3. constant(1) ifadesi.
  4. plus() dinamik ifadesindeki 2 değeriyle ifade edilen constant(2) ifadesi.
DynamicInt32.constant(1).plus(2).animate()