【发布时间】:2018-05-16 22:27:08
【问题描述】:
我有一个 5 秒倒计时计时器,我需要检测持续时间内的加速度幅度。如果幅度满足陈述,则返回一个真值。但是,由于 void 方法 OnTick 并且它也是一个内部类,我无法将任何值返回或传递给外部类。
public boolean low_high_Detection(final double ampA) {
new CountDownTimer(5000, 1000) {
public void onTick(long millisUntilFinished) {
final double low_TH = 9.0, high_TH = 10.5;
boolean lying_on_floor = false;
if(ampA > low_TH && ampA <high_TH)
{
lying_on_floor = true;
}
}
public void onFinish() {
Toast.makeText(detect.getBaseContext(), "5 seconds dectection over",Toast.LENGTH_SHORT).show();
}
}.start();
if (lying_on_floor == true)
{
return true;
}
return false;
}
任何人都可以建议我如何解决此方法?或者还有另一种处理方式。
【问题讨论】:
-
使布尔值 lie_on_floor = false;作为类字段。
-
感谢您的回复。抱歉,我的 oo 概念不是很好。类字段是指getter和setter吗? @Deepakkaku
-
不只是在类中的函数之外声明它。这样它就成为一个类字段,在其所有功能中都有其范围
-
哦,太好了,谢谢。您是否知道如何将 ampA 传递给 CountDownTimer 类? ampA 值将不断变化。 @Deepakkaku
-
类似于布尔值应该可以工作。使其成为类字段