我的计划是让一个按钮在点击时初始化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()方法中时,目前没有任何事情发生。任何方式,或者我忘记了什么?