在Android中,我怎样才能延迟onSensorChanged?

时间:2014-03-02 22:50:23

标签: android sensor proximity

我正在创建一个应用程序的问题。本质上,应用程序应该只在接近传感器被阻塞(某些东西附近)时启动,并且一旦它被解除阻塞,它应该运行finish()。我试过这个

    public void onSensorChanged(SensorEvent event) {
    if (event.values[0] == 0) {
        iv.setImageResource(R.drawable.logotwo);
    } else {
        finish();
    }
}

但应用程序立即关闭,因为它无法足够快地读取接近传感器。如果我做

public void onSensorChanged(SensorEvent event) {
if (event.values[0] == 0) {
    iv.setImageResource(R.drawable.logotwo);
} else {
    iv.setImageResource(R.drawable.logoone);
}

}

它识别传感器并根据被阻挡的传感器显示两个图像。

那么如果传感器没有被阻挡而没有应用程序没有启动,我怎么能调用finish()?

1 个答案:

答案 0 :(得分:0)

Proximty传感器的值在启动时不为0,在覆盖/遮挡时为0,这就是调用finish();的原因。请相应调整您的代码。

一个快速解决方法是使用值1而不是0并保持代码不变。