Итак, у меня есть этот метод под названием PredictionEngine(int)
, который я хочу запустить определенное количество времени с определенной задержкой времени между каждым прогоном. Метод выглядит следующим образом:Запуск метода для определенного количества времени
private void PredictionEngine(int delay) throws Exception {
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
enableStrictMode();
String val = null;
try {
if (tHighPass == 0 && tLowPass == 0 && tKalman == 1) {
//Magic
} else {
//Magic
}
} catch (Exception e) {
e.printStackTrace();
}
enableStrictMode();
new DropboxTask(side_output, "Result", val).execute();
}
}, delay);
}
Как очевидно, я бегу на работу сети в главном потоке, как это исследование приложение и ни один клиент никогда не собирается использовать его.
Я хочу, чтобы вся эта функция выполнялась за 100 раз с определенной задержкой, скажем, 2 секунды. Первоначальная мысль была сделать это:
for(loop 100 times){
PredictionEngine(int)
Thread.sleep(2000); //sorry for StackOverflow programming.
}
Однако я не хочу, чтобы блокировать основной поток, как я читаю некоторые данные датчика там. Любые идеи для этого были бы очень полезными!
Спасибо.
[Timer] (https://developer.android.com/reference/java/util/Timer.html) – Onik