方法运行时如何更新值-Java



所以我有一个非常奇怪的问题,我根本无法理解为什么它不起作用。我正在作为我的应用程序的一部分构建频闪灯,并创建了一个单独的Strobelight类。当我调用Turnon方法或更新方法时,间隔永远不会更改。我想这将使使用一些代码进行解释更容易:

public class Strobelight{
private int delayOn, delayOff;
public void turnStrobeOn(){...}
public void update(int a_delayOn, int a_delayOff){
    delayOn = a_delayOn;
    delayOff = a_delayOff;
}
public void turnOn(int a_delayOn, int a_delayOff){
    delayOn = a_delayOn;
    delayOff = a_delayOff;
    this.turnStrobeOn();
}

取决于频闪灯是否已经打开,这些方法之一被要求使用指定的间隔更改strobe Light或仅更改间隔。

而不是将间隔更改为"自定义",该应用程序仅在呼叫thread.sleep()时使用最小的间隔。手电筒打开或关闭

编辑:这是线程代码,并且代码在

上打开手电筒

public void turnstrobeon(){

    for ( int i = 0; i < 3; i++){
        isInCycle = true;
        cam = Camera.open();
        Parameters p = cam.getParameters();
        p.setFlashMode(Parameters.FLASH_MODE_TORCH);
        cam.setParameters(p);
        cam.startPreview(); // the flashlight is now on
        lightIsOn = true;
        new Thread(new Runnable() {
            public void run() {
                try {
                    Thread.sleep(delayOn);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();
        cam.stopPreview();
        cam.release();
        lightIsOn = false;
        new Thread(new Runnable() {
            public void run() {
                try {
                    Thread.sleep(delayOff);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }).start();
    } //end of for loop
        isInCycle = false;  
} // end of turnStrobeOn

您可能想获得别人的建议,买我最好的猜测是您不能对睡眠如此具体()。也不要忘记为此使用miliseconds。我建议使用Android处理程序并为此进行延期而不是睡觉。

如何在Android中暂停/睡眠线程或过程?

相关内容

  • 没有找到相关文章

最新更新