在Android应用中执行备用逻辑

时间:2013-11-04 19:26:23

标签: android

我需要在我的应用中每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的情况下实现这一目标?

1 个答案:

答案 0 :(得分: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();