Android:振动器不会停止振动

时间:2017-03-14 16:15:34

标签: android infinite motorola android-vibration

振动器对象有一个奇怪的问题。

Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(2 * DateUtils.SECOND_IN_MILLIS);

当屏幕开启时(即使在我的应用程序之外),它也可以正常工作。 但如果我按下电源按钮关闭屏幕,振动器在2秒后不会停止振动。它会无限期地继续振动。

请注意,此行为仅发生在我的Motorola Moto E3上。你知道我怎么能绕过这个吗?

3 个答案:

答案 0 :(得分:1)

根据我的经验,Vibrator在不同设备上的工作方式不同。最好的办法是cancel() onStop()活动中的振动。

答案 1 :(得分:1)

如果罗伊提出的建议并不奏效。尝试制作一个AlarmManager,并将其设置为2秒内,并在其中调用vibrator.cancel()

答案 2 :(得分:0)

我尝试了所有内容(postdelayed,services,new thread,...),但没有任何成功。但我终于找到了一种方法来避免摩托罗拉Moto E3上的这个错误,使用一种模式:

Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(new long[]{0, 2 * DateUtils.SECOND_IN_MILLIS}, -1);

我希望这会有所帮助。