0

次のコードを使用して、ボタンをクリックするとデバイスが 10 秒間振動するようにしていますが、ユーザーが誤ってハードウェアの戻るボタンまたはオプション ボタンを押した場合、振動を停止できます。どうすればこれを克服できますか?前もって感謝します

mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
mVibrator.vibrate(1000 * 10);// sprint time vibration

私はすでに戻るボタンをオーバーライドしようとしましたが、役に立ちません

Android 5.0でテスト済み

4

2 に答える 2

0

OnBackPressed をオーバーライドして super.onBackPressed を削除するだけで、ハードウェアの戻るボタンを無効にできます ...

@Override
public void onBackPressed() {
    //super.onBackPressed();
}
于 2015-08-12T12:47:45.143 に答える
0

ドキュメントには次のように書かれているようです:

If your process exits, any vibration you started will stop.

http://developer.android.com/reference/android/os/Vibrator.html

これを行うと、アクティビティの観点からこの動作を処理する方法があるようです。

onCreate()-----

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
((Vibrator) getSystemService(Context.VIBRATOR_SERVICE)).vibrate(10 * 1000);
finish();

振動後にアクティビティを終了する場合は上記の条件を無視しているようですが、サービスからこれを行うことも同様の結果になるようです (アクティビティを離れるとキャンセルされます)。

称賛:

バイブレーター Androidでは、アプリ終了時に停止

于 2015-08-12T13:39:39.393 に答える