android - 如何重置计步器?
问题描述
我正在为大学作业创建一个非常简约的健身应用程序,该应用程序使用 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;
}
有没有实现重置功能的简单方法?我几乎没有时间了,并且真的坚持这一点。如果有人可以通过代码示例提供任何见解,我将不胜感激。感谢您抽出时间来阅读。
解决方案
当您使用 STEP_DETECTOR 传感器时,您不必使用共享首选项,因为此传感器会在打开它(应用程序)时将计数的步数重置为零。
推荐阅读
- javascript - React setstate 不会将旧状态合并到新状态
- javascript - 将显示的文本从 div 复制到另一个 div
- docker - 我正在学习 DevOps 的基本步骤,我的任务是在来自存储库的 Maven 项目上使用 jenkins 和 Docker 创建 CICD 管道
- python - [Pygame]:将表面移向位置
- snowflake-cloud-data-platform - 将 Oracle to_date('24-03-20','DD-MM-RR') 转换为雪花
- marklogic - 如果按名称连接的森林为假,如何自动删除数据库复制?
- tableau-api - Tableau 计算字段引用其自己的先前滞后 (-1) 值进行计算
- java - Appium:使用 XPath 通过部分 elementId/UID 查找元素
- jquery - jquery-migrate:过滤掉来自特定文件的警告?
- apache-kafka - Kafka Connect 转换 - 小写的 RegexRouter 替换主题名称