Подождите, пока AsyncTask.execute (()) завершит sh, прежде чем вернуть результат - PullRequest
0 голосов
/ 28 января 2020

Я читаю данные из локального Android RoomDB, и мне нужно сделать это в фоновом режиме, потому что хорошее чтение из DB не разрешено на UI Thread. Итак, у меня есть этот метод:

@Override
public DBBackedRouteModel getDBBackedRouteModelByID(Long id) {
    AsyncTask.execute(() -> {
        this.dbBackedRouteModel = routesParser.getDBBackedRouteModel(id);
    });
    return dbBackedRouteModel;
}

Есть ли способ узнать, что Async завершен, и вернуть результат только тогда?

Ответы [ 2 ]

0 голосов
/ 28 января 2020

Вы можете использовать EventBus. Метод onPostExecute () задачи asyn c позволяет опубликовать событие и передать значение, которое вы хотите прочитать. Надеюсь, что это решит вашу проблему

0 голосов
/ 28 января 2020

Вы можете использовать обратные вызовы . Я не уверен, что именно вы хотите сделать, но вы можете, например, сделать консольный журнал, когда Asyn c закончен.

...