Метод seekbar onProgressChanged () застрял - PullRequest
0 голосов
/ 10 марта 2020

Я использую панель поиска для включения и выключения фонарика для метода l oop в onProgressChanged(), но когда запускается l oop, он работает, но я не могу изменить значение панели поиска из-за l oop, панель поиска застряла когда l oop начинается. Я много пытался заставить его работать без зависаний, поэтому, когда я снова изменяю значение поисковой строки, он снова запускает l oop, что мне делать?

вызывающий метод

                @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();

                }

вот метод моргания для fla sh

 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();
            }
        }
    }
...