同期処理によるテーブルの初期化では、テーブルの初期化が終わるまでメイン画面が表示されないため、テーブルの初期化に時間がかかるとユーザーを不安にさせます。
非同期処理に変更して、テーブルの初期化中は「データベース初期化中です…」「しばらくお待ちください」というメッセージを表示するようにしてみます。
:appモジュールのPortalApplication.ktを変更します。
:
import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.SupervisorJob
import kotlinx.coroutines.launch
:
class HiltApplication: Application() {
:
private fun initializeDatabase() {
runBlocking {
withContext(Dispatchers.IO) {
databaseInitializer.initialize()
}
}
CoroutineScope(SupervisorJob() + Dispatchers.IO).launch {
databaseInitializer.initialize()
}
}
}