我正在创建一个让闪光灯相机闪烁的应用程序,但我在关闭该方法时遇到了问题。这些是我的变量:
Camera camera = null;
Parameters parameters;
int delay = 600;
int period = 600;
int delay1 = 300;
int period1 = 600;
Timer timer, timer2;
我用来使闪光灯相机闪烁的这种方法:
timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
cameraOn();
}
},delay1,period1);
timer2 = new Timer();
timer2.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
cameraOff();
}
},delay,period);
现在问题来了,有一个按钮可以关闭所有这些,但有时它可以工作,有时它不能。有时它会完美关闭,有时它会像我想要的那样回到以前的活动,但闪光灯相机保持打开状态。怎么了?以下是关闭相机闪光灯的方法:
private void cameraOff() {
parameters.setFlashMode(Parameters.FLASH_MODE_OFF);
camera.setParameters(parameters);
camera.release();
camera = null;
}
private void cameraOn() {
camera = Camera.open();
parameters = camera.getParameters();
parameters.setFlashMode(Parameters.FLASH_MODE_TORCH);
camera.setParameters(parameters);
}
这是按钮:
@Override
public void onClick(View arg0) {
timer.cancel();
timer2.cancel();
if(camera != null){
cameraOff();
}else{
finish();
}
}