gpt4 book ai didi

java - 每次应用程序启动时,如何将计步器重置为 0?

转载 作者:行者123 更新时间:2023-12-02 09:56:36 24 4
gpt4 key购买 nike

每次应用程序启动时,如何将计步器重置为 0?如果我关闭应用程序并重新启动它,计数器将从之前停止的位置继续。我希望一切能够重新开始。我已经尝试在每次应用程序启动时将我采取的步数 textview 设置为 0,但它不会改变任何内容。

public class HomeActivity extends AppCompatActivity implements SensorEventListener {
private TextView stepsTakenTextView;
private TextView distanceTraveledTextView;
private SensorManager sensorManager;
private Boolean running = false;
private UserModel userModel;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);

stepsTakenTextView = findViewById(R.id.stepsTakenTextView);
distanceTraveledTextView = findViewById(R.id.distanceTraveledTextView);
sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);

}

@Override
protected void onResume() {
super.onResume();
running = true;
Sensor countSensor = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
if(countSensor != null){
sensorManager.registerListener(this, countSensor, SensorManager.SENSOR_DELAY_UI);
}else{
Toast.makeText(this, "Sensor not found", Toast.LENGTH_SHORT).show();
}

}

@Override
protected void onPause() {
super.onPause();
running = false;
}


@Override
public void onSensorChanged(SensorEvent event) {
if(running){
float stepsTaken= event.values[0];

最佳答案

只有当设备重新启动时,传感器才会重新启动。

Android Sensor API

A sensor of this type returns the number of steps taken by the user since the last reboot while activated. The value is returned as a float (with the fractional part set to zero) and is reset to zero only on a system reboot...

相反,您可以执行以下操作:

  1. 启动应用后,立即保存传感器返回的第一个值。
  2. 每当传感器发出新值时,就从中减去初始值。

关于java - 每次应用程序启动时,如何将计步器重置为 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55959398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com