seekbar onProgressChanged()方法卡住了

时间:2020-03-10 09:38:50

标签: android android-seekbar

我正在使用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();
            }
        }
    }

0 个答案:

没有答案