如何使用计时器反复运行代码,直到布尔值为例如测试等于真的吗?

时间:2014-11-19 09:24:47

标签: java android android-layout android-activity

这可能是一个非常简单的问题,但是,我如何使用计时器一次又一次地运行代码,直到布尔值为例如测试等于真的吗?

显然我会使用while循环,但我不希望它停止在主ui线程上发生的其余工作

3 个答案:

答案 0 :(得分:1)

如果您的流程同时运行,请使用Handler并使用其postDelayed(Runnable, long)发布实施Runnable界面的回调。

一个相当天真的例子:

final handler = new Handler();

final Runnable r = new Runnable() {
    public void run() {
    if (<EXPRESSION>) {
        // Evaluated true, do your stuff and exit the polling loop.
    } else {
        handler.postDelayed(this, <TIMEOUT>);
    }
}

handler.postDelayed(r, <TIMEOUT>);

答案 1 :(得分:0)

您可以使用AlarmManager类来管理您的线程。它易于使用。

有关详细信息,请访问Android SDK Doc

答案 2 :(得分:0)

         timer=new Timer();
         timer.scheduleAtFixedRate(new TimerTask() {

            @Override
            public void run() {

            // Do your task
            if(flagIsOn)
            {
             timer.cancel();
             timer.purge();
             }


            }
        }, 0, 1000);