我想通过使用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);
}
});
}}
请原谅我的英语不好。谢谢你的帮助。
答案 0 :(得分:2)
在onPause()
中使用unregisterListener()。
答案 1 :(得分:0)
使用实例变量(布尔值)并最初将其设置为false。在第一次调用onShake()
时,在开始新活动之前检查它是否为false。然后将其更改为true并启动活动。下次调用onShake()
方法时,您的活动将无法启动,因为您的实例变量现在设置为true。