在使用安卓传感器Sensor时,需要注册传感器,在onSensorChanged中接收传感器的event.value。自己感觉整个使用过程很像观察者模式,但在网上和书上都没有看到确切的说法。
还有就是我们手机打开的时候,是不是像计步器以及加速度计、方向传感器这类传感器一直是打开的????软件中的注册是不是不控制传感器的打开,传感器的打开软件可控吗?
是观察者模式。这些硬件不需要你控制,系统会替你处理。你只需接受响应,处理数据
android系统启动的过程中,这些传感器都已经进入待工作状态,什么叫待工作状态呢?就是准备好工作了,但不是都开始工作,
要看上层的应用什么时候什么情况下要用,比如距离传感器只有在打电话的过程中你们才会去监听它,它在这个时候才会工作,如果你写个app调用系统接口去监听某个sensor,只要你的app再运行,那么底层的驱动就会获取数据上报给你们。app停止,下层也休息,不会工作,不然手机的功耗很大,sensor的负担也会很大。
准确的说,Android传感器不是观察者模式,观察者模式是Observer(观察者)Subject去(订阅)Observable (可观察者,即被观察者)的状态。传感器只是简单的回调。Android手机开机后,传感器处于待机状态,只有当App需要获取传感器数据,通过注册传感器(获取传感器数据,不是观察者模式),即通过相应的硬件接口获取传感器数据而已。