0

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;
        }
      }

ここで何が欠けていますか?

4

1 に答える 1

0

本来の動作をするmShakerときに を削除してみませんか? をビルドしたらAlertDialogmShaker...whatever destroys itまたは少なくともmShaker.pause. これが答えでない場合は、申し訳ありませんが、あなたの問題を誤解しました.

于 2012-11-05T12:36:11.153 に答える