Android中传感器(如加速计)的高频读数使用哪些类?

Android中传感器(如加速计)的高频读数使用哪些类?,android,android-asynctask,android-service,android-sensors,Android,Android Asynctask,Android Service,Android Sensors,我正在开发一个应用程序来监控加速计并写入文件,其频率足以检测道路上的颠簸(~100Hz)。我想能够启动和停止从主界面中的按钮录制 我最初的方法是使用服务(实现SensorEventListener类,使用BufferedWriter将事件写入文件)。我使用这种方法的问题是,在监听频率足够高的情况下,用户界面会冻结,用户甚至无法按“停止服务”。 由于没有“要完成的任务”,只有持续的倾听,因此IntentService无法工作。我成功地将该服务包装在一个AsyncTask中,它似乎工作得很好,但是对

我正在开发一个应用程序来监控加速计并写入文件,其频率足以检测道路上的颠簸(~100Hz)。我想能够启动和停止从主界面中的按钮录制

我最初的方法是使用服务(实现SensorEventListener类,使用BufferedWriter将事件写入文件)。我使用这种方法的问题是,在监听频率足够高的情况下,用户界面会冻结,用户甚至无法按“停止服务”。 由于没有“要完成的任务”,只有持续的倾听,因此IntentService无法工作。我成功地将该服务包装在一个AsyncTask中,它似乎工作得很好,但是对于正在进行的任务,不建议使用该类(并且该类必须在乘车约30分钟的时间内打开)


我对Android还不太了解——在这种情况下建议采用什么结构?为什么我不应该使用AsyncTask?

您最好在应用程序中动态存储所有数据,直到关闭传感器或其他功能,然后将数据转储到文件中。让你的应用程序每秒执行100次文件写入似乎很难。虽然不确定,但以前从未以这种频率工作过。感谢您的想法,我认为动态存储可能会有太多数据。。。我使用了AsyncTask,它似乎正在工作,并且祈祷没有任何问题;我仍然想知道是否有一种“合适的方法”来实现这一点。既然你需要一个长寿的线程,为什么不使用默认的java线程呢?若并没有必要从后台线程访问UI线程,那个么异步任务就并没有多大用处。