首页 > 解决方案 > 如何重置计步器?

问题描述

我正在为大学作业创建一个非常简约的健身应用程序,该应用程序使用 Google Maps API 和 Android 步数检测器传感器。

我无法解决的问题是如何将计步器重置为 0。我已阅读 Android 网站上的文档并了解在设备重新启动之前计数器不会重置。我已经阅读了先前提出的有关在程序首次启动时设置初始值的问题,但并不完全理解所说的内容。此外,我已经阅读了 SharedPreferences,但没有任何使用它们的经验。

我想做的只是使用 onClickListener 和按钮将步骤重置为 0。以下是我到目前为止的代码:

@Override
public void onSensorChanged(SensorEvent sensorEvent) {
    TextView steps = (TextView) findViewById(R.id.step_taken);

    if(isRunning){
        steps.setText(String.valueOf(sensorEvent.values[0]));
    }
}

@Override
public void onAccuracyChanged(Sensor sensor, int i) {

}

public void stopSteps(){
    SensorManager.unregisterListener(this);
    Toast.makeText(this, "Step counter has been deactivated", Toast.LENGTH_SHORT).show();
}

public void startSteps(){
    Sensor StepSensor = SensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
    SensorManager.registerListener(this, StepSensor, android.hardware.SensorManager.SENSOR_DELAY_UI);
    Toast.makeText(this, "Step counter has been activated", Toast.LENGTH_SHORT).show();
}

protected void onResume() {
    super.onResume();
    isRunning = true;
    Sensor StepSensor = SensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
    if(StepSensor != null){
        SensorManager.registerListener(this, StepSensor, android.hardware.SensorManager.SENSOR_DELAY_UI);
    } else{
        Toast.makeText(this, "No sensor has been found", Toast.LENGTH_SHORT).show();
    }
}

protected void onPause(){
    super.onPause();
    isRunning = false;
}

有没有实现重置功能的简单方法?我几乎没有时间了,并且真的坚持这一点。如果有人可以通过代码示例提供任何见解,我将不胜感激。感谢您抽出时间来阅读。

标签: android

解决方案


当您使用 STEP_DETECTOR 传感器时,您不必使用共享首选项,因为此传感器会在打开它(应用程序)时将计数的步数重置为零。


推荐阅读