Этот код выглядит хорошо, я думаю, что ваша проблема не здесь, вы можете видеть, в каком потоке вы запускаете функцию doWork
, используя эту строку Thread.currentThread().name
(распечатайте ее, используя журнал), но я считаю, что она победила ' не быть главной темой. так что вы можете заблокировать основной поток в ожидании результата, но нам потребуется больше кода, чтобы узнать это.
Рассматривали ли вы здесь использование RXJava / Kotlin? Я думаю, что в этом случае будет проще.