振动器对象有一个奇怪的问题。
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(2 * DateUtils.SECOND_IN_MILLIS);
当屏幕开启时(即使在我的应用程序之外),它也可以正常工作。 但如果我按下电源按钮关闭屏幕,振动器在2秒后不会停止振动。它会无限期地继续振动。
请注意,此行为仅发生在我的Motorola Moto E3上。你知道我怎么能绕过这个吗?
答案 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);
我希望这会有所帮助。