我要从各种传感器获取数据,比如加速度计、陀螺仪、麦克风和GPS。
传感动作不应是连续的,而是应根据不同的策略(例如节能)定期安排单一的短采样间隔。每个传感器采样动作持续几秒,比如说5秒。
我会为每个传感器实现一个“客户机”,在必要时委托它来监听传感器数据,以及一个控制客户机执行的“控制器”,但我不确定如何实现这一点。
为每个客户实现服务是否正确?或者是一个简单的异步任务或处理程序更好?
最好是每个客户机负责一个传感操作,在一个onStartService()中执行,或者onStartService()操作启用采样的周期性操作?
我们将非常感谢您的帮助。
最佳答案
这听起来像是Service
的任务,由Alarm
s按(常规)计划的间隔触发。AsyncTask
通常是在用户完成一些交互之后启动的,系统应该执行“长时间运行”操作(如网络i/o),否则可能会阻塞ui。
请注意,很有可能还会触发类似AsyncTask
的服务-请查看IntentService
。