为什么我的手机会无限震动?

RǢF*_*RǢF 3 java android

我试图在振动手机时使用振动模式.我正在使用:

Vibrator v = (Vibrator) this.getSystemService(Context.VIBRATOR_SERVICE);
                // Vibrate for 500 milliseconds
                long[] longs = { 2, 0, 0, 0, 2, 0 , 0, 0, 2 };
                v.vibrate(longs, 1);
Run Code Online (Sandbox Code Playgroud)

它只是不停止振动.

  1. 如果我使用v.vibrate(longs, -1);它根本不振动.
  2. 如果我使用v.vibrate(longs, 0);它根本不振动.
  3. 如果我使用v.vibrate(longs, 2);或任何高于1的数字,它会无限期地振动.
  4. 如果我将长值更改为更高或更低,则没有任何区别.

我读过的文档和一些牛逼ü 牛逼Ø 里亚尔,我不觉得我做错了什么在这里.为什么它不能正常振动?

注意:我使用其他正确振动图案的应用程序,所以我知道这不是我手机的问题.

cyb*_*sam 5

您应该阅读vibrate()的文档.

2, 0, 0, 0, 2, 0 , 0, 0, 2,你说:"等待2 ms,振动0 ms,等待0 ms,振动0 ms,等待2 ms,振动0 ms,等待0 ms,振动0 ms,等待2女士".显然,除非重复模式(具有奇数个间隔),否则此模式永远不会振动.

当您传递除-1之外的任何值作为第二个参数时,将使用第二个参数作为开始重复的模式的索引来重复该模式.由于你似乎永远不会打电话v.cancel(),这种重复永远不会结束,导致无休止的振动(因为在重复的某个时刻,你将有非0振动间隔).