건강 관리 서비스의 디바운스 목표
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
건강 관리 서비스는 이제 심박수, 이동 거리, 속도와 같은 즉각적인 측정항목의 디바운스 목표를 지원합니다. 디바운스 목표는 운동 전반에 걸쳐 심박수와 같은 특정 임곗값 또는 범위를 유지하려는 사람들을 위해 사용자 환경을 개선합니다.
디바운스 목표는 짧은 기간 동안 동일한 이벤트가 여러 번(조건이 true일 때마다) 발생하는 것을 방지합니다. 대신 구성 가능한 기간(일반적으로 몇 초) 동안 기준점이 지속적으로 초과된 경우에만 이벤트를 내보냅니다. 임곗값 도달 기간은 건강 관리 서비스에서 알림 이벤트를 전송하기 전에 사용자가 지정된 임곗값을 초과해야 하는 중단 없는 시간입니다.
또한 목표 등록 직후에 이벤트가 내보내지지 않도록 할 수도 있습니다. 초기 지연은 목표 등록 후 앱에 알림이 전송되어야 하는 시간입니다.
앱에서 사용자가 피트니스 목표 또는 목표를 설정할 수 있도록 허용하는 경우 '기준점에 도달하는 기간'과 '초기 지연'을 함께 사용하면 거짓양성 및 사용자에게 표시되는 반복 알림 수가 줄어듭니다.
우수사례: 심박수
디바운스된 목표의 일반적인 사용 사례에는 심박수 구간이 포함됩니다. 심박수는 운동 전반에 걸쳐, 특히 심장 강화 활동을 하는 동안 지속적으로 변동합니다. 디바운싱을 지원하지 않으면 앱은 사용자의 심박수가 목표 범위 위 또는 아래로 떨어질 때마다 같은 단기간에 많은 알림을 받을 수 있습니다.
'초기 지연'을 도입하면 건강 관리 서비스에 지정된 기간이 지난 후에만 목표 알림을 보내도록 알릴 수 있습니다. 이를 조정 기간으로 생각할 수 있습니다. '기준점에 도달하는 기간'을 도입하면 사용자가 목표가 활성화되기 위해 지정된 기준에 들어가거나 이를 벗어나는 동안 경과해야 하는 시간을 지정하여 이 맞춤설정을 더욱 강화할 수 있습니다.
실제로 앱에서 운동 강도를 높이거나 낮추라고 알려주기 전에 사용자가 15초 동안 목표 심박수 범위를 벗어날 때까지 기다릴 수 있습니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-07-27(UTC)"],[],[],null,["# Debounced goals in Health Services\n\nHealth Services now supports *debounced goals* for instantaneous metrics, such\nas heart rate, distance, and speed. Debounced goals improve the user experience\nfor people who want to maintain a specific threshold or range---such as heart\nrate---throughout their workout.\n\nDebounced goals prevent the same event from being emitted multiple times---every\ntime the condition is true---over a short time period. Instead, events are emitted\nonly if the threshold has been continuously exceeded for a configurable period\nof time, usually some number of seconds. **Duration at threshold** is the amount\nof uninterrupted time the user needs to cross the specified threshold before\nHealth Services sends an alert event.\n\nYou can also prevent events from being emitted immediately after goal\nregistration. **Initial delay** is the amount of time that must pass, since goal\nregistration, before your app is notified.\n\nWhen combined, \"duration at threshold\" and \"initial delay\" reduce the number of\nfalse positives and repeated alerts surfaced to users if your app lets users set\nfitness goals or targets.\n\nCase study: heart rate\n----------------------\n\nA common use case for debounced goals involves heart rate zones. Heart rate\ncontinuously fluctuates throughout an exercise, especially during\ncardio-intensive activities. Without support for debouncing, an app might get\nmany alerts in a short period of time, such as each time the user's heart rate\ndips above or below the target range.\n\nBy introducing an \"initial delay,\" you can inform Health Services to send a goal\nalert only after a specified time period has passed--you can think of this as an\nadjustment period. By introducing a \"duration at threshold,\" you can take this\ncustomization further, by specifying the amount of time that must elapse while\nthe user is in or out of the specified threshold for their goal to be activated.\n\nIn practice, this might involve waiting for the user to be out of their target\nheart rate range for 15 seconds before your app lets them know to increase or\ndecrease their exercise intensity."]]