【发布时间】:2015-11-29 04:29:05
【问题描述】:
我正在使用 android 传感器,特别是 TYPE_STEP_COUNTER。 TYPE_STEP_COUNTER 返回的值不断增加,没有办法重置它(据我所知)。我需要做的是获取从用户按下按钮开始的步数。
我愿意:
int steps = overallTotal - totalWhenButtonPressed
如何获得 totalWhenButtonPressed 的值?
我不能totalWhenButtonPress = event.values[0],因为值不断变化。
【问题讨论】:
-
你能解释一下为什么你不能做
totalWhenButtonPress = event.values[0],因为这正是我会做的。原始值被复制,您的total...在另一个更改时不会更改,以防您正在考虑。 -
@zapl 我不能做 totalWhenButtonPress = event.values[0] 因为 event.values[0] 不断更新。因此,如果我稍后引用 totalWhenButtonPress,则该值将是 event.values[0] 处的新值
-
事实并非如此。该行执行的那一刻,它将当前值复制到
total..。两者之间没有联系,因为int不是参考。即使它是一个对象,您也会将引用复制到values[0]的当前内容。您不与value[0]共享参考。每个人都有自己的参考,无论它是什么。 stackoverflow.com/questions/40480/…解释 -
没有骰子,我的代码:'Sensor stepCtr = sm.getDefaultSensor(Sensor.TYPE_STEP_COUNTER); sm.registerListener(mSensorCounter, stepCtr, SensorManager.SENSOR_DELAY_NORMAL);' '私有 SensorEventListener mSensorCounter = new SensorEventListener() { public void onSensorChanged(SensorEvent event) { TextView txtStepVals = ... int ogSteps = Math.round(event.values[0]);双 currSteps = event.values[0]; txtStepVals.setText("CurrSteps = " + currSteps + "\nOgSteps = " + ogSteps + "\nSteps: " + (currSteps - ogSteps)); } };'
-
我看不懂 :) 请edit 您的问题并妥善格式化。 ps
int ogSteps是不是回调中的局部变量,每次调用这个方法都会被覆盖? cs.umd.edu/~clin/MoreJava/Objects/local.html(“局部变量没有记忆”)
标签: java android integer sensors