无限运行计时器直到按下按钮



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

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

因为在第一次运行之后,toExit为true,因此在之后将不会执行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();
}
}
});

最新更新