Код: Выделить всё
mEngine = new TextToSpeech(mContext, listener, ENGINE_GOOGLE_NAME);
< /code>
То, что я хочу достичь, - это иметь одну функцию блокировки, которая вызывает конструктор и возвращает после того, как обратный вызов. Поток конструктор называется, слушатель уволен из поток «основной» приложения.
private TextToSpeech mEngine;
CountDownLatch cdl = new CountDownLatch(1);
ExecutorService executorService = Executors.newSingleThreadExecutor();
public void initializeBlocking() {
executorService.execute(() -> { // new thread
mEngine = new TextToSpeech(mContext, status -> {
cdl.countDown(); // callback body (executes in "main" thread)
}, ENGINE_GOOGLE_NAME);
});
cdl.await(); // main thread
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... n-java-and