gpt4 book ai didi

Android 传感器监听器未注销或传感器仍检索值

转载 作者:太空宇宙 更新时间:2023-11-03 10:20:21 25 4
gpt4 key购买 nike

我在使用 SensorManager.unregisterListener 时遇到一些问题。它们与 Android, Thread, Cannot unregister SensorEventListener 相似和 SensorEventListener doesn't get unregistered with unregisterListener() method .但我找不到我的答案!我还遵循了 SensorManager 文档示例 http://developer.android.com/reference/android/hardware/SensorManager.html#SENSOR_DELAY_UI .

问题是,在 Activity 完成后,我注销了监听器,但传感器一直在发送值,直到应用程序被完全销毁。

这是我的代码:

我的 SensorController 实现了 SensorEventListener

public class SensorController implements SensorEventListener{

构造函数:

public SensorController(Context context){
sensorManager = (SensorManager)context.getSystemService(Context.SENSOR_SERVICE);
}

当 Activity 的 onResume 回调被调用时,我的 SensorController onResume 方法被调用:

public void onResume(){
mAccelerometerSensor = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
boolean ret1 = sensorManager.registerListener(this, mAccelerometerSensor, SensorManager.SENSOR_DELAY_UI);
mMagneticSensor = sensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD);
boolean ret2 = sensorManager.registerListener(this, mMagneticSensor, SensorManager.SENSOR_DELAY_UI);

}

当 Activity 的 onPause 回调被调用时,我的 SensorController onPause 方法被调用:

public void onPause(){
sensorManager.unregisterListener(this);
}

在 SensorChanged 上,我放置了一个日志来监控传感器事件:

@Override
public void onSensorChanged(SensorEvent event) {
this.computeRotationAngles(event);
Log.i("SensorController", "onSensorChanged");
}

所以...在 Activity onPause 方法之后,onSensorChanged(SensorEvent event) 仍然检索传感器事件。为什么??我在 SensorController.onPause() 函数中注销了它。传感器检索到良好的值,但我无法阻止它们发送。我做错了什么?

非常感谢您!我将不胜感激每一个小提示:)

最佳答案

尝试卸载应用程序并重新安装。它适用于我的。

关于Android 传感器监听器未注销或传感器仍检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24239949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com