当前位置: 首页 > 知识库问答 >
问题:

步进计数器不重置步进计数

江宏伟
2023-03-14

我能够通过注册和注销侦听器来开始和停止使用Sensor.TYPE_STEP_COUNTER录制步骤。

但是,当应用程序被销毁时,通过< code>SensorEvent对象传递给我的应用程序的实际值不会重置为零。如果我关闭应用程序并重新启动它,或者即使我用更新重新编译我的应用程序,计数器也会从它停止的地方开始计数。

如果我运行其他使用步数计数器传感器的应用程序,它们会独立计算步数并重置计数器。

传感器是否有特定于应用程序的缓存?将传感器重置为零步数的正确方法是什么?

共有2个答案

蔚承天
2023-03-14

传感器的onSensorChanged方法仅在出现真正的新值时调用,它不会随机触发重复值,因此如果您想自己计算步数,可以。

我选择将步长值放在SharedReferences中,每当触发onSensorChanged方法时,我将我的值递增1,这是可靠的,因为SensorChange方法不会触发重复值,此解决方案对我很适用

赵正雅
2023-03-14

来自Android Sensor API:

公共静态final int TYPE_STEP_COUNTER

此类型的传感器返回用户在激活时自上次重新启动以来所执行的步骤数。该值以浮点数形式返回(小数部分设置为零),并且仅在系统重新启动时重置为零。

(强调我的)

正如您所看到的,当传感器被激活时,该值将一直增加,直到系统重新启动后才重置为零。

如果您想在每次启动应用程序时从0开始计数,您可以存储返回的第一个值作为初始值,然后用它减去后续值。

 类似资料:
  • 光环板程序 1. 新建三个消息:“start”、“move”、“stop” 2. 拖取一个事件类积木 当按钮被按下 到脚本区,添加一个 控制类积木 重复执行,事件类积木 广播(start),感知类积木 重置计时器 3. 添加控制类积木 如果()那么(),运算类积木 ()>(),感知类积木 光环板摇晃强度,输入“15”,再添加一个事件类积木 广播(move) 4. 添加控制类积木 如果()那么(),

  • 有人能告诉我如何开始实施Android Material Design guide中描述的垂直非线性步进控制吗 http://www.google.com/design/spec/components/steppers.html

  • 计数器组件。 Usage 全部引入 import { Stepper } from 'beeshell'; 按需引入 import Stepper from 'beeshell/dist/components/Stepper'; Examples Code 详细 Code <Stepper min={1} max={5} value={1} onChange={(value,

  • 介绍 步进器由增加按钮、减少按钮和输入框组成,用于在一定范围内输入、调整数字。 引入 import { createApp } from 'vue'; import { Stepper } from 'vant'; const app = createApp(); app.use(Stepper); 代码演示 基础用法 通过 v-model 绑定输入值,可以通过 change 事件监听到输入值

  • 使用指南 组件介绍 Stepper 步进器由增加按钮、减少按钮和输入框组成,用于在一定范围内输入、调整数字 引入方式 import { Stepper } from 'feart'; components: { "fe-stepper": Stepper, } 代码演示 基础用法 通过 v-model 绑定输入值 <fe-stepper title="基础用法" v-model=

  • 定义 步进器组件,规定范围内的单位数值之间进行的加减切换。 图片展示 代码演示 import Stepper from 'pile/dist/components/stepper' <Stepper min={0} max= {5} defaultVal={0} disabled = {false} steps={1} back={()=>{}}/> 属性 参数 描述 数据类型 默认值 mi