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