SensorEventListener不会取消注册

时间:2013-04-11 11:43:40

标签: android listener sensor sensormanager

我一直在开发一个需要在几个步骤中执行加速度计校准的应用程序。

我所做的是创建一个获取一定数量读数的SensorEventListener,在达到该数量后,我调用'sensorManager()。unregisterListener(eventListener)'。

但是,我认为这一行并没有取消注册监听器,因为在此之后,由于继续运行,会调用相同的行。

问题:我是否以这种方式正确地做事,或者应该调整我的处理程序以便在达到这个条件后它不允许自己运行(使用if)?

1 个答案:

答案 0 :(得分:1)

如果您的SensorEventListener仅在取消注册后被调用一次,则由于Android的多线程特性,此行为可能是由race condition引起的。因此,如果您想关闭处理读数,那么(如您所建议的那样)您应该设置一个布尔变量并使用if语句对其进行测试,以确保在达到限制后不再进行进一步处理。