在Android应用程序中执行备用逻辑
我需要在我的应用程序中每2秒闪烁一次LED。我已使用以下代码计算出打开和关闭LED的代码:在Android应用程序中执行备用逻辑,android,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 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的情况下实现这一点?您可以使用线程来实现:
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();
可以使用
AsyncTasks
并使用get
方法强制第二段代码“等待”第一段代码?考虑到2秒的等待时间?读取和处理程序
和延迟后处理程序
也看到了这一点,您应该通过测试并拥有使用线程睡眠()的许可证。当Thread.sleep有意义时,有一些特殊情况。这不是其中之一。绝对没有必要。