ユーザ用ツール

サイト用ツール


サイドバー

プログレス合同会社

広告

android:studio:application:table-initialize-async

92.テーブルの初期化(非同期処理)

同期処理によるテーブルの初期化では、テーブルの初期化が終わるまでメイン画面が表示されないため、テーブルの初期化に時間がかかるとユーザーを不安にさせます。

非同期処理に変更して、テーブルの初期化中は「データベース初期化中です…」「しばらくお待ちください」というメッセージを表示するようにしてみます。

データベースの初期化処理を非同期処理で実行するように変更

: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()
    }
  }
}

2行目、4行目
同期処理のライブラリを削除します。
5行目~7行目
非同期処理のライブラリをimportします。
12行目~16行目
同期処理を削除します。
17行目~19行目
データベースの初期化処理を非同期実行にします。

android/studio/application/table-initialize-async.txt · 最終更新: by プログレス合同会社