我只想在外部标志为真时每隔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,我试图根据外部硬件的异步事件监听标志更改。
答案 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