Как автоматически включать / выключать кнопку переключения каждые 15 секунд? - PullRequest
0 голосов
/ 06 декабря 2018

Привет в приведенном ниже коде, у меня есть одна кнопка переключателя. Без проверенной / непроверенной кнопки переключателя хочу выполнять операции включения или выключения каждые 15 минут

При проверке все работало. Но не нужно касаться этого переключателя автоматически,бывает

может кто-нибудь, пожалуйста, помогите мне

  geyserOnOff.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {

                    Log.d(TAG, "Checked once programatically :" + isProgrammatically);
                    if (!isProgrammatically) {

                        if (isChecked) {
                            /*geyser on method*/

                            geyserOnMethod();


                        } else {
                            if (ConstantUtils.REMAINING_DURATION_TIMER > 0) {
                                /*timer running alert dilaog*/
                                timerRunningAlertDialog();

                            } else if (isTimerRunning) {
                                 /*timer running alert dilaog*/

                                timerRunningAlertDialog();
                            } else {
                                /*geyser off method*/
                                long millisInfuture=15000;
                                long countDownInterval=1000;
                                new CountDownTimer(millisInfuture,countDownInterval){
                                    public void onTick(long millisUntilFinished){
                                        Toast.makeText(context,"Seconds Remaining:"+millisUntilFinished/1000,Toast.LENGTH_LONG).show();
                                    }
                                    public void onFinish(){
                                        Toast.makeText(context,"Time Over",Toast.LENGTH_LONG).show();
                                    }
                                }.start();
                                geyserOffMethod();

                            }


                        }
                    }
                    isProgrammatically = false;
                }
            });

1 Ответ

0 голосов
/ 06 декабря 2018

Вы можете перейти к использованию TimerTask!Установите таймер на 15 секунд и в процессе работы установите флажок и снова установите таймер на 15 секунд.

    Timer timer = new Timer();
    final TimerTask task = new TimerTask() {
           @Override
           public void run() {
               myCheckBox.setChecked(!myCheckBox.isChecked()); //Toggle
           }
       };
    timer.scheduleAtFixedRate(task, 15*1000, 15*1000); //Schedule from delay 15 seconds
   //schedule
...