Android - 每隔X毫秒运行一个函数,条件为真吗?

时间:2011-06-24 20:43:24

标签: java android

我只想在外部标志为真时每隔X毫秒运行一个函数myFunction()。但是我对Threads(app crashes),Timers(应用程序崩溃)没有运气。处理程序/ runnables有点好,但通常我会有类似的东西:

Runnable rr = new Runnable() {
                public void run() {
                    if (flag1 == true) {
                        myFunction();
                    } else {
                        return; 
                    }
                }
            }; 
            handler.postDelayed(rr, 1000);

但问题是执行将在1000毫秒后一个接一个地发生。我想要执行myFunction的一次执行,等待1000ms,调用myFunction,等待1000ms,调用myFunction等,直到flag1变为false。

我已经坚持了一段时间,所以非常感谢任何帮助。

编辑 - 更多问题信息

处理程序定义如下:

private Handler handler = new Handler();

它的类是一个BroadcastReceiver,我试图根据外部硬件的异步事件监听标志更改。

1 个答案:

答案 0 :(得分:1)

这将循环并在应用程序的生命周期内每秒检查一次标志。

Thread myThread = new Thread(new UpdateThread());`
myThread.start();`

public class UpdateThread implements Runnable {

    @Override
    public void run() {
            while(true)
    {
        if (flag1 == true) 
                        myFunction();   
        myThread.sleep(1000);
    }

}

您也可以查看服务

http://developer.android.com/reference/android/app/Service.html