2012-04-04 10 views
0

Ich habe Shake-Event-Listener in meiner Anwendung implementiert und Onshake einige Logik. Ich möchte einen Dialog anzeigen, nachdem der Benutzer mit dem Schütteln des Telefons aufgehört hat. Wo muss ich diese Logik implementieren? Wenn ich es onShake selbst mache, erscheinen mehrere Dialoge. Kann mir jemand helfen?Android Shake Event

Dank Jai

+0

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

+0

fängt Ich habe wirklich das eine vorgeschlagen, das von einem anderen Benutzer http://stackoverflow.com/a/5117254/1068513 – jai

+0

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

Antwort

0

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); 
+0

Danke Th0rndike – jai