unregisterListener是不工作的按钮单击事件 [英] unregisterListener is not working on button click event
问题描述
下面是我的code。我是新android开发。我叫 registerListener
按钮单击事件。它从加速度计获取数据,但是当我打电话 unregisterListener
从另一个按一下按钮,它不工作。
公共无效startButton(查看视图){
findViewById(R.id.stop).setEnabled(真);
findViewById(R.id.start).setEnabled(假);
意向意图= getIntent();
selsensors = intent.getStringExtra(SensorsList.SELECTED_SENSORS);
mSensorManager =(的SensorManager)getSystemService(SENSOR_SERVICE);
senList = mSensorManager.getSensorList(Sensor.TYPE_ALL);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mSensorManager.registerListener(这一点,mAccelerometer,mSensorManager.SENSOR_DELAY_NORMAL);
}
@覆盖
公共无效onSensorChanged(SensorEvent事件){
如果(event.sensor.getType()== Sensor.TYPE_ACCELEROMETER){
AX = event.values [0];
AY = event.values [1];
AZ = event.values [2];
Toast.makeText(这一点,X+ AX +\\ NY:+ AY +\\ NZ:+ AZ,Toast.LENGTH_SHORT).show();
}
}
公共无效STOPBUTTON(查看视图){
mSensorManager.unregisterListener(本);
this.finish();
}
你试过它有传感器参数注销功能?此外,你确定你是不是叫去precated注销功能呢? http://developer.android.com/reference/android/hardware/SensorManager.html
mSensorManager.registerListener(这一点,mAccelerometer,mSensorManager.SENSOR_DELAY_NORMAL);
mSensorManager.unregisterListener(这一点,mAccelerometer);
Here is my code. I am new to android development. I called registerListener
on button click event. It starts getting data from accelerometer but when I call unregisterListener
from another button click, it is not working.
public void startButton(View view){
findViewById(R.id.stop).setEnabled(true);
findViewById(R.id.start).setEnabled(false);
Intent intent = getIntent();
selsensors = intent.getStringExtra(SensorsList.SELECTED_SENSORS);
mSensorManager = (SensorManager)getSystemService(SENSOR_SERVICE);
senList = mSensorManager.getSensorList(Sensor.TYPE_ALL);
mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
mSensorManager.registerListener(this, mAccelerometer, mSensorManager.SENSOR_DELAY_NORMAL);
}
@Override
public void onSensorChanged(SensorEvent event){
if(event.sensor.getType()==Sensor.TYPE_ACCELEROMETER){
ax = event.values[0];
ay = event.values[1];
az = event.values[2];
Toast.makeText(this, "X: "+ax+"\nY: "+ay+"\nZ: "+az, Toast.LENGTH_SHORT).show();
}
}
public void stopButton(View view){
mSensorManager.unregisterListener(this);
this.finish();
}
Have you tried the unregister function which has the sensor as parameter? Furthermore, are you sure you are not calling the deprecated unregister functions? http://developer.android.com/reference/android/hardware/SensorManager.html
mSensorManager.registerListener(this, mAccelerometer, mSensorManager.SENSOR_DELAY_NORMAL);
mSensorManager.unregisterListener(this, mAccelerometer);
这篇关于unregisterListener是不工作的按钮单击事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!