Search code examples
androidmultithreadingandroid-sensors

Stopping Sensor from another Thread


I want to stop Sensor manager activity (unregister it) from another Thread or class after some operations to be performed. How can I do that?


Solution

  • Look Here. It might help you.

    ShakeListener.java

    Made Instance variable in ShakeListener class.
    private Sensor accelerometer;
    SensorManager sensorManager;
    
    public ShakeListener(Context context) {
        sensorManager = (SensorManager)this.context.getSystemService(Context.SENSOR_SERVICE);
        accelerometer = sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
        sensorManager.registerListener(this, accelerometer, SensorManager.SENSOR_DELAY_NORMAL);
    }
    

    To unregister from another thread or class.

    Do this:

    private ShakeListener shakeListener;  //Instance variable
    shakeListener = new ShakeListener(this);
    shakeListener.sensorManager.unregisterListener(shakeListener, shakeListener.sensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER));