【问题标题】:Run a timer infinitely until button pressed?无限运行计时器直到按下按钮?
【发布时间】:2020-11-26 05:50:40
【问题描述】:

如何添加除非再次单击按钮才结束的定时功能? 这可以运行一个线程,但除非我转到应用程序中的另一个选项卡并返回它,否则它不会重新启动。

 metroStartBtn.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            metronomeOn = !metronomeOn;

            if(metronomeOn)
            {
                final Thread t = new Thread(new Runnable()
                {

                    @Override
                    public void run()
                    {
                        while(!toExit){
                            // Your code
                            try {
                                playSound(getContext(), 1);
                                Thread.sleep(100);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                        }
                    }
                });

                    t.start();

            }

            else
            {
                toExit = true;
            }

        }

    });

【问题讨论】:

    标签: android multithreading timer


    【解决方案1】:

    因为在第一次运行之后,toExit 为真,因此之后您的 while 循环将不会执行

    metroStartBtn.setOnClickListener(new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                metronomeOn = !metronomeOn;
    
                if(metronomeOn)
                {
                    final Thread t = new Thread(new Runnable()
                    {
    
                        @Override
                        public void run()
                        {
                            while(metronomeOn){
                                // Your code
                                try {
                                    playSound(getContext(), 1);
                                    Thread.sleep(100);
                                } catch (InterruptedException e) {
                                    e.printStackTrace();
                                }
                            }
                        }
                    });
    
                    t.start();
    
                }
            }
    
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      相关资源
      最近更新 更多