Android Sensors (4) 传感器使用最佳实践
访问和使用传感器的最佳实践
当你设计你的传感器实践时,你需要遵守一些guidelines:
1.注销传感器监听
当你用完传感器或者传感器的activity暂停时,一定要注销传感器的listener。
如果传感器listener被注册了但是它的activity暂停了,传感器将持续获取数据并且使用电池资源,除非你注销它。
可以阅读unregisterListener(SensorEventListener)获取更多相关信息。
2.不要在模拟器上测试你的代码
不能在模拟器上测试你的传感器代码,因为模拟器不能模拟传感器。你必须在一个物理设备上。
3.不要阻塞onSensorChanged()方法
传感器数据改变的频率很高,所以系统会经常调用onSensorChanged(SensorEvent)
方法,所以在这个方法中,你应该尽量少做一些事情,免得阻塞它。
如果你的应用要求你做一些数据过滤或者传感器数据的削减,你应该在这个方法之外进行。
4.避免使用废弃(deprecated)方法或传感器类型
一些方法和常量已经废弃了,就不建议使用了。
比如TYPE_ORIENTATION
这个类型已经废弃,为了得到方向数据,你应该使用getOrientation()
方法。
类似的,TYPE_TEMPERATURE
已经废弃,在Android 4.0 设备上应该使用TYPE_AMBIENT_TEMPERATURE来代替它。
5.在使用前验证传感器
在你尝试从传感器读取数据之前,你先要验证它是否在设备上存在。
6.谨慎选取传感器delay
当你用 registerListener()
方法注册传感器时,确认你选取了一个合适的传递率,传感器可以以非常高的频率传递数据。
允许系统传递多余的数据会浪费系统的资源和浪费电池电量。
参考资料
API Guides:Sensors Overview
http://developer.android.com/guide/topics/sensors/sensors_overview.html