LiveData следует использовать только с жизненным циклом и только для обновления пользовательского интерфейса. Обозреватель LiveData всегда вызывается в основном потоке. Если вы хотите выполнить другой код, вы должны использовать Flow в качестве возвращаемого типа функции Query. С помощью Flow вы можете указать диспетчер сопрограмм, который выполняет код, и вы можете преобразовать его в LiveData с помощью этой функции:
liveData(Dispatchers.IO) {
myFlow.collect {
emit(it)
}
}
Также вы можете создать два разных метода.