Timer 持续时间间隔计时器(可运行结果不够)

Timer 持续时间间隔计时器(可运行结果不够),timer,camera,runnable,Timer,Camera,Runnable,我们想编码一个非常准确和一致的计时器间隔(100毫秒),以生成一个周期性的光模式与手机手电筒 目前我们使用一个可运行的函数,但这显示了很多偏差 如果我们用光电二极管测量响应,我们会发现80到150毫秒之间的偏差 此错误是由runnable功能或执行Tourch功能的启用/禁用引起的。下面您可以找到我们用来触发手机tourchlight的runnable。开/关周期应为100ms,但长度变化和开/关周期变化不一致。这可能与相机服务有关吗 private final Runnable mRunnab

我们想编码一个非常准确和一致的计时器间隔(100毫秒),以生成一个周期性的光模式与手机手电筒

目前我们使用一个可运行的函数,但这显示了很多偏差

如果我们用光电二极管测量响应,我们会发现80到150毫秒之间的偏差


此错误是由runnable功能或执行Tourch功能的启用/禁用引起的。

下面您可以找到我们用来触发手机tourchlight的runnable。开/关周期应为100ms,但长度变化和开/关周期变化不一致。这可能与相机服务有关吗

private final Runnable mRunnable=new Runnable(){


如果您需要更多信息,请告知我们

您可以添加示例代码吗?仅添加您正在执行的最小代码。
    public void run() {
        if (mActive) {
            if (mSwap) {

                mSwap = false;
                mHander.postDelayed(mRunnable, 100);

                params = camera.getParameters();
                params.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
                camera.setParameters(params);

            } else {



                mSwap = true;
                mHander.postDelayed(mRunnable, 100);

                params = camera.getParameters();
                params.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
                camera.setParameters(params);
            }
        }
    }
};