私はAndroidアプリ(Kotlinコード)でデータの永続性を実装するためにGoogle Roomを使用しています。ルームでは、すべての操作(データベースとのクエリ)が非同期であることが要求されます。ユーザーが操作が実行されるのを待って、クエリが終了する前に正しく構成されていないコンポーネントとのやりとりを防ぐことができます。非同期タスクからUIスレッドにアクセスすることができないので、これをどのように達成できますか?Google Roomで使用される非同期タスクの進行状況を正しく表示するには
PS:私はまた、進歩/ローディングインジケーターが持っているといいAPIをいくつか呼び出します。私はこれらの呼び出しでRxJavaを使用していますが、私はこの技術をかなり新しくしており、正しく構造化する方法がわかりません。 DB操作の
サンプル:
private fun getDataFromCache() {
//show progress indicator here
execute({
try {
//Get items from cache
val entities = daoData.findAll()
if (entities.isNotEmpty()) {
//do something
} else {
//do something else
}
}
catch (e: Exception){
Log.e("error", e.toString())
}
finally{
//dismiss progress indicator here
}
})
}
乾杯、私たちは同様のアプローチに従った! –