so, um Ihr Problem zu denken, ich erwäge zunächst die konstanten Werte Ihres Zuhörer zu „zwicken“ (MIN_FORCE, MIN_TIME ... usw.), um einem gewissen „Widerstand“ zu schaffen für das Ereignis, also würde es nicht übermäßig gefeuert werden. Dann erkannte ich, dass es eine dumme Idee war, da es eine viel bessere Lösung gibt ... lösen Sie einfach den Event-Handler, wenn das Shake-Ereignis auftritt, und binden Sie es erneut, wenn der Benutzer das Dialogfeld ablehnt. Um dies zu tun, verwenden Sie den gleichen Code in der Antwort, sofern Sie für die onResume und onPause Methoden verwendet:
diese den Hörer zu binden:
mSensorManager.registerListener(mSensorListener,
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_UI);
und das es zu lösen:
mSensorManager.unregisterListener(mSensorListener);
können wir Ihren Event-Listener sehen? ist es möglich, dass Sie ein Intervall zwischen den Erschütterungen einstellen müssen, um das Ereignis zu vermeiden, das wiederholt – Th0rndike
fängt Ich habe wirklich das eine vorgeschlagen, das von einem anderen Benutzer http://stackoverflow.com/a/5117254/1068513 – jai
welches eins vorgeschlagen wird? der eine als Lösung akzeptiert? Jeder Zuhörer in dieser Frage hat einen anderen Ansatz. Wenn es in der Antwort akzeptiert wird, behandelt es nicht die Zeit zwischen den Erschütterungen, also müssen Sie es implementieren. – Th0rndike