即使清除了缓存,传感器数据也会存储以前的值

问题描述

我开发了简单计数步骤应用程序,该应用程序可以在TextView的当前足迹上显示,它也可以在OnPause方法上运行,以及不断运行。

问题是,我想删除以前的数据并从头开始计算步骤,我清除了手机设置中的数据,但没有帮助。从Android Studio加载的应用程序甚至再次显示0作为第一个值,然后在我使用它时显示300或更多。传感器仍然以某种方式仍然拥有所有数据。

你能帮忙吗?

这是我的代码:

public class MainActivity extends AppCompatActivity implements SensorEventListener {
private final int PHYISCAL_ACTIVITY = 0;
private TextView Steps;
private SensorManager sensorManager;
private Sensor mCountStep;
// private boolean x;
int CountSteps;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if (ContextCompat.checkSelfPermission(this,Manifest.permission.ACTIVITY_RECOGNITION) == PackageManager.PERMISSION_DENIED) {
        //ask for permission
        requestPermissions(new String[]{Manifest.permission.ACTIVITY_RECOGNITION},PHYISCAL_ACTIVITY);
    }
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    Steps = findViewById(R.id.textKroki);
    sensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

    if (sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER) != null) {

        mCountStep = sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER);
        //  x= true;
    } else {

       Steps.setText("NO SENSOR."); //x=false;
    }
}


@Override
public void onSensorChanged(SensorEvent sensorEvent) {
    if (sensorEvent.sensor == mCountStep) {
        CountSteps = (int) sensorEvent.values[0];
        Steps.setText(String.valueOf(CountSteps));
    }
}

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

}

@Override
protected void onResume() {
    super.onResume();
    if (sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER) != null) {

        sensorManager.registerListener(this,mCountStep,SensorManager.SENSOR_DELAY_NORMAL);
    }
}

@Override
protected void onPause() {
    super.onPause();
    if (sensorManager.getDefaultSensor(Sensor.TYPE_STEP_COUNTER) != null) {
        sensorManager.unregisterListener(this,mCountStep);

    }
}

@Override
protected void onDestroy() {
   // deleteCacheData();
    super.onDestroy();

}}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)