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();

  }  
}

在我的shakelistener 类中,我在pause() 方法中使用了unregisterListener。

 public void pause() {
        if (mSensorMgr != null) {

          mSensorMgr.unregisterListener(this);
          mSensorMgr = null;
        }
      }

我在这里缺少什么任何建议表示赞赏。

4

1 回答 1

0

你为什么不摆脱mShaker它什么时候做它应该做的事情?构建后AlertDialog,只需调用mShaker...whatever destroys it或至少mShaker.pause。如果这不是答案,对不起,我误解了您的问题。

于 2012-11-05T12:36:11.153 回答