Android处理程序无法在指定的时间间隔内工作

问题描述

我正在构建一个Android应用程序,需要满足特定条件的情况下,在特定的时间间隔内要短暂振动。

问题在于,当满足这些条件时,即使将设备设置为振动2秒,有时它也会振动10秒钟以上,并且有时振动不会停止,直到重新启动设备为止。 另外,我注意到处理程序中的runnable不在正确的时间间隔内运行。应该每隔 interval 秒,但通常花费的时间更多。

这是一个例子:

fullBatteryHandler.postDelayed(new Runnable() {
            @Override
                public void run() {
                if(isBatteryFull){
                    Log.d("vibrate","full battery");
                    v.vibrate(VibrationEffect.createOneShot(2000,VibrationEffect.DEFAULT_AMPLITUDE));
                }
                fullBatteryHandler.postDelayed(this,interval * 1000);
            }
         },1000);

为什么会发生这种情况?

编辑:我通过添加WakeLock解决了该问题。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)