onShake メソッドを使用してアクティビティを開始しています。振るたびにアクティビティが開始されますが、最初に振ったときだけアクティビティを開始したいです...ここで同様の質問を見ました: onShake メソッドを使用して新しいアクティビティを開始する..しかし、それから多くを得ることができませんでした..以下は私のコードです
public class ShakeListenerTestActivity extends Activity
{
private ShakeListener mShaker;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Vibrator vibe = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);
mShaker = new ShakeListener(this);
mShaker.setOnShakeListener(new ShakeListener.OnShakeListener () {
public void onShake()
{
vibe.vibrate(100);
new AlertDialog.Builder(ShakeListenerTestActivity.this)
.setPositiveButton(android.R.string.ok, null)
.setMessage("Do stuff here!!")
.show();
}
});
@Override
public void onResume()
{
mShaker.resume();
super.onResume();
}
@Override
public void onPause()
{
mShaker.pause();
super.onPause();
}
}
私のシェイクリスナークラスでは、pause() メソッドで unregisterListener を使用しています。
public void pause() {
if (mSensorMgr != null) {
mSensorMgr.unregisterListener(this);
mSensorMgr = null;
}
}
ここで何が欠けていますか?