Android : 振动器不停止振动
Android : The vibrator does not stop vibrating
我对振动器对象有一个奇怪的问题。
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(2 * DateUtils.SECOND_IN_MILLIS);
当屏幕打开时(甚至在我的应用程序之外),它会按预期工作。
但是,如果我按一次电源按钮关闭屏幕,振动器在 2 秒后不会停止振动。它会无限期地继续振动。
请注意,此行为仅发生在我的摩托罗拉 Moto E3 上。你知道我该如何规避这个问题吗?
根据我的经验,Vibrator
在不同设备上的工作方式不同。最好的办法是 cancel()
onStop()
中 Activity 的振动。
如果 Roy 的建议不起作用。尝试制作一个 AlarmManager,并将其设置为在 2 秒内关闭,并在其中调用 vibrator.cancel()
我尝试了所有方法(postdelayed、服务、新线程……),但没有成功。但我终于找到了一种方法来绕过摩托罗拉 Moto E3 上的这个错误,使用模式:
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(new long[]{0, 2 * DateUtils.SECOND_IN_MILLIS}, -1);
希望对您有所帮助。
我对振动器对象有一个奇怪的问题。
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(2 * DateUtils.SECOND_IN_MILLIS);
当屏幕打开时(甚至在我的应用程序之外),它会按预期工作。 但是,如果我按一次电源按钮关闭屏幕,振动器在 2 秒后不会停止振动。它会无限期地继续振动。
请注意,此行为仅发生在我的摩托罗拉 Moto E3 上。你知道我该如何规避这个问题吗?
根据我的经验,Vibrator
在不同设备上的工作方式不同。最好的办法是 cancel()
onStop()
中 Activity 的振动。
如果 Roy 的建议不起作用。尝试制作一个 AlarmManager,并将其设置为在 2 秒内关闭,并在其中调用 vibrator.cancel()
我尝试了所有方法(postdelayed、服务、新线程……),但没有成功。但我终于找到了一种方法来绕过摩托罗拉 Moto E3 上的这个错误,使用模式:
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
vibrator.vibrate(new long[]{0, 2 * DateUtils.SECOND_IN_MILLIS}, -1);
希望对您有所帮助。