2013-03-19 24 views
1

我的应用程序从加速度计获取数据,UI的响应性不如应有。 我想这是因为在UI线程中调用了SensorEventListener。 所以我尝试创建一个新的线程,其中实现了事件监听器的内部类以及我注册加速度计的线程。然而,代码是在UI线程中执行的。所以:你如何让onSensorChanged不会减慢UI?使onSensorChanged不放慢用户界面

回答

1

不要在回调中做很多事情。当你执行你的代码时,你不能得到另一个更新。

例如,当您在onSensorChanged中有一个睡眠(500)时,您将不会收到针对500毫秒的新更新。

因此,在onSensorChanged中启动一个新线程,并在那里做你的东西。

+0

通过这种方式,每次都会创建一个线程,称为onSensorChanged。它看起来如此资源昂贵。 – 2013-03-19 14:43:48

+0

的确如此。但是在这个回调中你需要做什么? – 2013-03-19 14:47:29

+0

如何启动一个线程来处理所有传感器的变化(如果只有最新的是重要的,否则队列中的所有传感器都不工作),并将接收到的“新”数据传递给该线程。 – damian 2013-03-19 15:18:42