我正在使用onProgressChanged()
方法中的for循环通过for循环来打开和关闭手电筒,但是当循环开始时它正在工作,但是由于循环我无法更改seekbar的值,在循环开始时,seekbar卡住了。我做了很多尝试,以使其在不卡死的情况下工作,所以当我再次更改seekbar的值时,它将再次开始循环,该怎么办?
呼叫方式
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
value = seekBar.getProgress();
if(value==1)
{
delay=1000;
}
else if(value==2)
{
delay=900;
}
else if(value==3)
{
delay=800;
}
else if(value==4)
{
delay=700;
}
else if(value==5)
{
delay=600;
}
else if(value==6)
{
delay=500;
}
else if(value==7)
{
delay=400;
}
else if(value==8)
{
delay=300;
}
else if(value==9)
{
delay=200;
}
else if(value==10)
{
delay=100;
}
blink();
}
这是闪光灯的闪烁方法
private void blink()
{
for (int i = 1; i <=300; i++) {
if (flash) {
// params.setFlashMode(Parameters.FLASH_MODE_ON);
flashLightOff();
flash=false;
} else {
// params.setFlashMode(Parameters.FLASH_MODE_OFF);
flashLightOn();
flash=true;
}
try {
Thread.sleep(delay);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}