onCreate方法之外的onShake方法

时间:2017-06-04 17:22:25

标签: android accelerometer oncreate sensormanager

我的计划是让一个按钮在点击时初始化shakelistener。如果未按下该按钮,则不会设置shakelistener。

目前我有一个单独的方法runShaker(),其中包含初始化Shake Listener的代码以及检测到抖动时要运行的代码;

public void runShaker(){

    //Initialise ShakeDetector
    mSensorManager = (SensorManager) getSystemService(getApplicationContext().SENSOR_SERVICE);
    mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    //Start Shake Detection
    mShakeDetector = new ShakeDetector();

    mShakeDetector.setOnShakeListener(new ShakeDetector.OnShakeListener() {

        @Override
        public void onShake(int count) {

            Toast.makeText(getApplicationContext(), "Movement Detected", Toast.LENGTH_SHORT).show();
        }
    });

}

但是,此代码仅在放置在onCreate()方法中时才能成功运行。当放在我的runShaker()方法中时,目前没有任何事情发生。任何方式,或者我忘记了什么?

0 个答案:

没有答案