Ожидание завершения runOnUiThread
- public static void blockingTask(Activity activity, Runnable runnable) {
- final Runnable task = new Runnable() {
- @Override
- public void run() {
- runnable.run();
- synchronized(this) {
- this.notify();
- }
- }
- };
- synchronized (task) {
- activity.runOnUiThread(task);
- try {
- task.wait();
- } catch (InterruptedException e) {
- Thread.currentThread().interrupt();
- }
- }
- }
Пригодится, если, находясь в другом потоке, нужно дождаться завершения UI-потока.