設定の変更時にサービスを開始する設定アクティビティがあります。サービスで揺れを検出したい。以下にあるこのコードは、アクティビティで使用すると正常に動作しますが、サービスで使用したい場合は機能しません。これは、サービスでシェイク検出器コードを使用した方法です。私のコードの何が問題なのですか?
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」トーストが表示されましたが、デバイスを振った後、「Shake!」が表示されません。トースト。私は何をすべきか。よろしくお願いします。