Мне нужно обновить интерфейс после определенного периода времени, для которого у меня есть расписание таймера, и внутри него я вызываю runOnUiThread.
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
System.out.println("1");
try {
System.out.println("2");
System.out.println("3");
runOnUiThread(new Runnable() {
public void run() {
System.out.println("4");
System.out.println("5");
System.out.println("6");
System.out.println("7");
}
});
System.out.println("8");
} catch (Exception e) {
e.printStackTrace();
}
}
}, delay, period);
System.out.println("9");
У меня проблема в том, что после достижения значения «3» поток таймера переходит на «8», а после этого поток пользовательского интерфейса запускается с «4».Я хочу заставить поток таймера ждать, пока поток пользовательского интерфейса завершит свою работу на «7», только тогда он должен перейти на «8».
Пример вывода
01-05 00:30:16.308: I/System.out(1394): 1
01-05 00:30:16.308: I/System.out(1394): 2
01-05 00:30:16.308: I/System.out(1394): 3
01-05 00:30:16.308: I/System.out(1394): 8
01-05 00:30:16.308: I/System.out(1394): 4
01-05 00:30:16.308: I/System.out(1394): 5
01-05 00:30:16.308: I/System.out(1394): 6
01-05 00:30:16.308: I/System.out(1394): 7
01-05 00:30:17.307: I/System.out(1394): 1
01-05 00:30:17.307: I/System.out(1394): 2
01-05 00:30:17.307: I/System.out(1394): 3
01-05 00:30:17.307: I/System.out(1394): 8
01-05 00:30:17.307: I/System.out(1394): 4
01-05 00:30:17.323: I/System.out(1394): 5
01-05 00:30:17.323: I/System.out(1394): 6
01-05 00:30:17.323: I/System.out(1394): 7