2012-11-26 117 views
2

我正在编写一个应用程序,它可以从旋转矢量传感器获取手机旋转并通过套接字将值发送到我的PC。在一个单独的线程上获取传感器事件监听器

我想实现一个SensorEventListener的方式,以便在单独的线程中对onSensorChanged()进行回调,以便使UI线程更具响应性。我的理解onSensorChanged将被经常调用,所以我想分开UI线程的所有回调。

有没有可能这样做?

我是新的android编程,真的需要帮助。

+0

可能重复(http://stackoverflow.com/questions/17513352/acclerometer-sensor-in-separate-thread) –

回答

0

您应该在单独的Service中处理您的SensorListeners。只需从服务创建一个新线程,调用一个特定的函数(它将注册监听器并处理接收到的数据)。 [Acclerometer传感器在单独的线程]的

task = new Runnable() { 
    public void run(){ 
     receive_and_treat_info(); 
    } 
}; 
task.start(); 

void receive_and_treat_info(){ 
    register_your_listeners(); 
    treat_them(); 
} 
+0

所以,如果我理解你。我需要:创建一个扩展Service的类。从我的主线创建并启动服务。在服务内部运行一个新的线程,并在线程内注册我的监听器?但谁实现了听众?服务? – user1853008

+0

没错。我不记得是否必须为传感器实现Listener接口(我不这么认为)。服务和活动共享相同的应用程序上下文,并会收到传感器事件,所以您不应该担心谁实现了什么。 – PeterGriffin

+0

好的,我会尝试。谢谢!! – user1853008