问题描述
我开发了简单计数步骤应用程序,该应用程序可以在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 (将#修改为@)