1

我想使用 onShake 方法开始新的活动。一切正常,但是当新活动开始时,仍然可以使用 onShake 命令(当我摇晃手机 5 次时,新活动开始 5 次)。我应该怎么做才能摇动手机并开始新的活动一次?这是我的代码。

public class ACTIVITY extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    SensorManager mSensorManager;

    ShakeEvent mSensorListener;

    mSensorListener = new ShakeEvent();
    mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
    mSensorManager.registerListener(mSensorListener,
        mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
        SensorManager.SENSOR_DELAY_UI);


    mSensorListener.setOnShakeListener(new ShakeEvent.OnShakeListener() {

      public void onShake() {
          Intent i = new Intent(Shake.this, NEWACTIVITY.class);
          startActivity(i);
      }
    });
}}

请原谅我的英语不好。谢谢你的帮助。

4

2 回答 2

2

在. _ _onPause()

于 2011-08-15T16:29:17.170 回答
0

使用实例变量(布尔值)并最初将其设置为 false。当onShake()第一次调用时,在开始新的活动之前检查它是否为假。然后将其更改为 true 并开始活动。下次onShake()调用该方法时,您的活动将不会启动,因为您的实例变量现在设置为 true。

于 2011-08-15T17:15:13.093 回答