В Kotlin вы бы использовали сопрограммы, которые работают как обещания под капотом, но выглядят как простой серийный код:
suspend fun loadLibA() { ... }
suspend fun loadLibB() { ... }
suspend fun loadLibC() { ... }
GlobalScope.launch(Dispatchers.Main) {
loadLibA() // Execution will stop here without blocking, until Lib A is loaded
loadLibB() // Same as for A
loadLibc() // Same as for A
startHomeScreen() // Normal call to launch Home screen
}
Пример кода, конечно, упрощен, просто чтобы передать идею. Вы можете узнать о них из официальных документов .