2014-03-02 43 views
0

我遇到了一个我正在创建的应用程序的问题。从本质上讲,应该只有在接近传感器被阻塞(接近传感器)的情况下才会启动,并且只要它被解除阻塞,它就应该运行finish()。我已经试过这在Android中,我该如何延迟onSensorChanged?

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()?

回答

0

Proximty传感器的值在启动时不为0,当其覆盖/闭塞时为0,这就是为什么它正在调用finish();.请相应地调整您的代码。

一个快速的解决方法是使用值1而不是0,并保持原样。