我有 Preferences Activity,它在偏好更改时启动服务。在服务中,我想检测摇晃动作。我在下面的这段代码,当我在活动中使用它时工作正常,但是当我想在服务中使用它时,它就无法工作,这就是我在服务中使用抖动检测器代码的方式,我的代码有什么问题?
public class back extends Service {
SensorManager mSensorManager;
ShakeEventListener mSensorListener;
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
}
@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
Toast.makeText(back.this, "Service Started", Toast.LENGTH_LONG).show();
mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
mSensorListener = new ShakeEventListener();
mSensorListener.setOnShakeListener(new ShakeEventListener.OnShakeListener() {
public void onShake() {
Toast.makeText(back.this, "Shake!", Toast.LENGTH_SHORT).show();
}
});
}
protected void onResume() {
mSensorManager.registerListener(mSensorListener,
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_UI);
}
protected void onPause() {
mSensorManager.unregisterListener(mSensorListener);
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}
}
我得到了“Service Started” Toast,这意味着服务已启动,但在我摇动设备后,我没有看到“Shake!” 吐司。我应该怎么办。谢谢是提前。