Я хочу использовать сопрограммы kotlin для операций с базами данных и покажет пользователям экран загрузки. Моя базовая реализация выглядит следующим образом:
fun loadSomeData(){
mainCoroutineScope.launch {
showLoadingDialog()
// suspening function over Dispatchers.IO, returns list
val dataList = fetchDataFromDatabase()
inflateDataIntoViews(dataList)
hideLoadingDialog()
}
}
Это прекрасно работает для меня, когда загрузка занимает много времени для больших наборов данных. Но в тех случаях, когда fetchDataFromDatabase()
заканчивается быстро, показ и скрытие диалогового окна в быстрой последовательности создает раздражающий эффект смещения.
Поэтому я хочу, чтобы диалоговое окно отображалось только в том случае, если функция fetchDataFromDatabase()
принимаетболее чем, скажем, , 100 мс для завершения.
Итак, мой вопрос, Каков эффективный способ добиться этого с помощью сопрограмм kotlin?