/**开始重力传感器的检测*/ public void start() { // 获得传感器管理器 sensorManager = (SensorManager) mContext.getSystemService(Context.SENSOR_SERVICE); if (sensorManager != null) { // 获得重力传感器 sensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); } // 注册 if (sensor != null) { sensorManager.registerListener(this, sensor, SensorManager.SENSOR_DELAY_GAME); } } /**停止检测*/ public void stop() { sensorManager.unregisterListener(this); }
1. 注意如果你想重复的在一个页面不停的摇,如果你 start() --> 监听到传感器触发事件 只能摇一次(如果你不选择stop() 他还是只能摇一次,继续摇就摇不了了)想要继续摇必须再次启动 start()方法 再次stop() 做循环来重复摇,这是最重要的。
例如:1. start() --> 触发事件 --> stop(); 只能摇一次
2. start() --> 触发事件; 不执行stop() 只能摇一次
3. start() --> 触发事件完立马执行stop() -->start() --> 触发事件完立马执行stop() --> start() ....... 这样就可以无限的执行摇一摇功能了
不知道是不是我写的代码有误还是怎么的,我在代码中想要执行多次监听摇一摇就必须按照 例3这种方式 如果有人知道原因,请在下方留言,希望学习一下