unregisterListener是不工作的按钮单击事件 [英] unregisterListener is not working on button click event

查看:652
本文介绍了unregisterListener是不工作的按钮单击事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面是我的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆