アプリケーションに Shake Event リスナーを実装しました。onShake はいくつかのロジックを実行します。ユーザーが電話を振るのをやめた後にダイアログを表示したい。このロジックをどこに実装する必要がありますか? onShake 自体で実行すると、複数のダイアログが表示されます。誰かが私を助けることができますか?
ありがとうジャイ
アプリケーションに Shake Event リスナーを実装しました。onShake はいくつかのロジックを実行します。ユーザーが電話を振るのをやめた後にダイアログを表示したい。このロジックをどこに実装する必要がありますか? onShake 自体で実行すると、複数のダイアログが表示されます。誰かが私を助けることができますか?
ありがとうジャイ
だから、あなたの問題について考えて、私は当初、イベントの「抵抗」を作成するためにリスナーの定数値(MIN_FORCE、MIN_TIME ...など)を「微調整」することを検討していたので、過度に発生しません. それから、もっと良い解決策があるので、それはばかげた考えだと気づきました...シェイクイベントが発生したときにイベントハンドラーをバインド解除し、ユーザーがダイアログを閉じたときに再度バインドします。これを行うには、 onResume および onPause メソッドに使用した回答で提供されているのと同じコードを使用します。
これでリスナーをバインドします。
mSensorManager.registerListener(mSensorListener,
mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER),
SensorManager.SENSOR_DELAY_UI);
そしてこれをバインド解除します:
mSensorManager.unregisterListener(mSensorListener);