私はアプリケーションでShake Eventリスナーを実装しており、onShakeはいくつかのロジックを実装しています。私は、ユーザーが電話を揺するのをやめた後にダイアログを表示したい。このロジックを実装する必要があるのはどこですか?私がそれを実行すると、複数のダイアログが表示されます。誰か助けてくれますか?Android Shakeイベント
おかげ ジャイ
私はアプリケーションでShake Eventリスナーを実装しており、onShakeはいくつかのロジックを実装しています。私は、ユーザーが電話を揺するのをやめた後にダイアログを表示したい。このロジックを実装する必要があるのはどこですか?私がそれを実行すると、複数のダイアログが表示されます。誰か助けてくれますか?Android Shakeイベント
おかげ ジャイ
ので、あなたの問題について考え、私が最初にあなたのリスナーの定数値(MIN_FORCE、MIN_TIME ...など)いくつかの「抵抗」のために作成するために「微調整」するために検討していましたそのイベントは過度に発射されません。それから、はるかに良い解決策があるので、それは馬鹿げたアイデアだと気付きました... 握手イベントが発生したときにイベントハンドラをアンバインドしてから、ユーザがダイアログを閉じるときに再度バインドします。これは、リスナーの結合
:はこれを行うには、あなたはonResumeとonPauseメソッドを使用答えで提供される同じコードを使用
mSensorManager.registerListener(mSensorListener,
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_UI);
を、これは、それをアンバインドする:
mSensorManager.unregisterListener(mSensorListener);
ありがとうTh0rndike – jai
あなたの震えのイベントリスナーを見ることができますか?繰り返しイベントが発生するのを避けるために揺れの間隔を設定する必要がある可能性があります – Th0rndike
私は実際に別のユーザーが提案したものを実装しましたhttp://stackoverflow.com/a/5117254/1068513 – jai
どちらですか? 1つは解決策として受け入れられましたか?その質問のすべてのリスナーは異なるアプローチをしています。それが答えに受け入れられたものであれば、それは揺れの時間を処理しないので、それを実装する必要があります。 – Th0rndike