-1

我需要在我的应用程序中每 2 秒闪烁一次 LED。我已经找到了使用以下代码打开和关闭 LED 的代码:

Camera camera = Camera.open();
Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();

p.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(p);
camera.startPreview();

现在,一旦用户按下闪烁按钮,我需要执行第一段代码 2 秒,然后再执行第二段代码 2 秒。此外,一旦用户按下“停止”按钮,我就需要停止执行此备用 LED 开关序列。

任何想法,如何在不使我的应用程序导致 ANR 的情况下实现这一目标?

4

1 回答 1

0

你可以使用线程来做到这一点:

Camera camera = Camera.open();
Parameters p = camera.getParameters();
p.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(p);
camera.startPreview();

new Thread(){
    public void run(){
        try{
            Thread.sleep(2000);
        }catch(Exception ex){}

        runOnUiThread(new Runnable(){
            public void run(){
                p.setFlashMode(Parameters.FLASH_MODE_OFF);
                camera.setParameters(p);
                camera.startPreview();
            }
        });
    }
}.start();
于 2013-11-04T19:36:58.663 回答