Я использую планировщик, чтобы убедиться, что мой цикл не занимает слишком много времени, поэтому я выхожу из цикла, если планировщик запускает и завершает цикл.
Это довольно просто:
public void startSchedulerForTimeout() {
Log.i("x", "SCHEDULING TIMEOUT " );
timeoutForLoopReached = false;
scheduler.schedule(new Runnable() {
public void run() {
timeoutForLoopReached = true;
Log.i("x", "SET TIMEOUT FLAG ");
}
}, 10, TimeUnit.SECONDS);
}
поэтому в своем коде я просто пишу:
startSchedulerForUSBMessageTimeout();
while (!done && !timeoutForLoopReached) {
...do the loop stuff
}
Чтобы убедиться, что запланированное задание не запускается при повторном запуске цикла, мне нужно отменить планирование устаревшего задания (в случае, если я завершил циклдо истечения времени ожидания), чтобы новый таймер снова запустился в начале нового цикла (вместо запуска старого цикла после того, как первый цикл был завершен прямо между вторым циклом):
Как можноЯ просто отменяю запланированное задание, которое не было запущено, чтобы избежать путаницы в этом задании?
Большое спасибо!